Android 将 github 库与 maven 一起使用是不是安全

Posted

技术标签:

【中文标题】Android 将 github 库与 maven 一起使用是不是安全【英文标题】:Android is it safe to use github libraries with mavenAndroid 将 github 库与 maven 一起使用是否安全 【发布时间】:2017-01-13 00:33:29 【问题描述】:

我正在使用带有 android Studio 的 Gradle 构建系统,并且有几个关于使用 maven 依赖项的问题。

我正在使用来自 github 的库,我想知道将其作为 maven 依赖项包含它是否安全,或者以不同的方式将库包含到项目中是否更好。如果所有者从 github 中删除库会发生什么?我的应用程序会停止工作吗?如果是这样,那么直接将库包含在我的项目中会更好吗?

说实话,我对通过 maven 和 gradle 使用存储库的细节还有些不清楚,但我想知道以这种方式使用库的局限性。

我设法通过将 JitPack 存储库添加到我的构建文件 build.gradle 来实现一个库,但我担心所有者删除该库导致应用程序无法使用的可能性。下面是我用来实现该库的以下代码块:

repositories 
    maven  url "https://jitpack.io" 


dependencies 
    compile 'com.github.windyzboy:CustomEditor:v1.0.1'

这会下载文件并将其放入我的项目中,还是以某种方式引用库?如果存储库的所有者删除了他们的库,我的应用还能使用它吗?

【问题讨论】:

这就是你应该使用来自 Maven Central 的库的原因,因为版本永远不会在那里被删除,而且你应该使用 Maven 或 Gradle 的存储库管理器...... 感谢您的洞察力,我没有意识到 Maven Central 的库不太可能被删除。也许我会从那里寻找一个不同的图书馆 【参考方案1】:

来自Frequently Asked Questions

如果在 GitHub 上删除标签或存储库会怎样?

如果项目已经构建,那么 JitPack 将继续为现有工件提供服务。它不会在新标签处重建项目。如果您需要重做一个版本,最好的选择是在 GitHub 上创建一个新版本。

根据我的经验,最多只能删除成功的构建 7 天。但我找不到任何关于它的官方文档。但我想每个人都从 NPM 灾难中吸取了教训。

只需使用它。许多人这样做。到目前为止,这是我用于发布自己的项目的唯一渠道。您唯一的问题是服务下降。但这对于任何其他服务也是一个有效的担忧。

【讨论】:

刚刚阅读了 NPM 灾难,这听起来很糟糕。我不确定我将来是否愿意处理这个问题,但它似乎不太可能经常发生。我想知道是否可以下载该库并直接将其实现到android studio中的项目中? 当然可以。 JAR 或 AAR 只是下载的文件。这些可以作为模块导入到 Android Studio。您也可以直接使用源代码。只需 fork 项目并创建自己的 Maven 存储库。但不要忘记申请许可证。 哦,好吧,听起来不错,感谢您的深入回应,谢谢 Gradle 是一个“构建”系统。它会在构建时下载库并将它们打包到您的应用程序中。如果某个库消失,您将失去发布新版本的能力,但现有应用程序将继续运行。您可以通过在没有互联网连接的设备上安装应用程序来验证这一点。它安装得很好,表明所有依赖项都在 APK 中,并且在运行时未获取。 Android 不容易受到 NPM 发生的那种事情的影响。

以上是关于Android 将 github 库与 maven 一起使用是不是安全的主要内容,如果未能解决你的问题,请参考以下文章

将公共 maven 存储库与 ivy 一起使用

Nexus 原始存储库与 Maven 存储库

将 github 存储库与谷歌云存储桶同步

使用 SSH 连接到远程服务器的 Visual Studio Code - 如何将代码库与 github 同步?

我可以将使用 android 支持的库与 Androidx 项目一起使用吗?

将 Laravel 存储库与数据表一起使用