Android 如果从Gradle中删除包,我的项目会发生什么?

Android 如果从Gradle中删除包,我的项目会发生什么?,android,gradle,Android,Gradle,我在Android开发方面没有太多经验,而且我对使用Gradle的依赖性表示怀疑。例如: 如果我使用gradledependecies构建一个Android应用程序,并且包提供商(例如毕加索)从存储库中删除包,那么我的项目会发生什么?我会丢失组件吗?或者它制作了二进制文件的本地副本,我的项目将保持正常工作 非常感谢您帮助我更好地理解它是如何工作的。首先,您应该阅读: 对您的问题的简短回答:除非清除缓存或依赖项的版本发生更改,否则您的项目仍将生成 但包通常不会从存储库中消失(编辑:aslu

我在Android开发方面没有太多经验,而且我对使用Gradle的依赖性表示怀疑。例如:

如果我使用gradledependecies构建一个Android应用程序,并且包提供商(例如毕加索)从存储库中删除包,那么我的项目会发生什么?我会丢失组件吗?或者它制作了二进制文件的本地副本,我的项目将保持正常工作


非常感谢您帮助我更好地理解它是如何工作的。

首先,您应该阅读:

对您的问题的简短回答:除非清除缓存或依赖项的版本发生更改,否则您的项目仍将生成


但包通常不会从存储库中消失(编辑:as
lu.koerfer
在注释中为其加下划线,)。如果是这样,可能会有一个具有不同名称/组的替换包,您应该更新依赖项以使其重新正确生成,而不是依赖缓存。

Gradle
执行
同步时下载并缓存所有依赖项,您可以在Android Studio的底部看到它

如果在新版本的库中删除了一些包,我们有两个选项:

  • 您更新了项目中的库版本,并且此包也已为您的项目删除

  • 您使用的库和包的旧版本仍然可以从项目中访问


如果您要删除所使用的依赖项,您的项目仍将能够使用您愿意使用的
库。
直到具有相同名称/组的其他依赖项将覆盖旧的依赖项


您可以阅读更多有关gradle如何以及gradle如何管理其缓存的信息

您应该保留一份正在安装的库的备份副本作为依赖项,但您不应该提前那么多担心

这是非常罕见的,但它可能会被删除由于许多原因。在其他情况下也有这样的情况,负责管理某个包的人刚刚决定删除或更改它

这不仅适用于Gradle,还适用于您的应用程序所依赖的任何托管包管理解决方案的依赖关系。因此,同样的建议也适用于像NPM这样的系统


在开发过程中的某个时刻,你应该问自己“我能在5年内再次构建这个系统,用我拥有的并且可能在5年内仍然可以访问的所有数据修复新机器上的错误吗?”,因为你的本地依赖缓存可能早就不存在了,而且库的下载也可能从互联网上消失了。为了以防万一,最好将它们与代码的其余部分放在同一个存储库中。

感谢Lassi的回答。你知道我怎样才能可靠地备份gradle吗?文件夹e等…只是不要备份!如果某个包在任何时候都将被删除,则出于特定原因(例如,重大安全问题)。在这一点上,您永远不应该重用本地备份,而是应该修复您的项目以使用更新的版本,甚至是完全不同的库!gradle的图书馆通常也可以从其他来源获得。和@lu.koerfer该包也可以替换为具有安全漏洞的包。这不是以前不会发生的事情。当然,这要看情况而定,但我在5年后的观点是,也许你找不到它。整个回购协议可能会失败。所有指向它的链接都可能已关闭。如果你想在5年或10年后重新编译它们,相信它们保持在线并不是一个很好的方法。我有一些代码我再也找不到sdk来轻松编译它们了(旧的symbian东西)。你知道如果不能再次同步,包的本地引用是否会被删除吗?一般来说,如果从存储库中删除包,你的构建将不可复制。但是,对于Maven Central(提供示例的存储库),这种情况永远不会发生,因为包。