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

时间:2018-02-28 13:21:05

标签: android gradle

我对Android开发没有多少经验,我对使用Gradle的依赖项有疑问。例如:

如果我使用Gradle dependecies构建Android应用程序并且包提供程序(例如picasso)从存储库中删除包,那么我的项目会发生什么?我会丢失组件吗?或者它制作二进制文件的本地副本,我的项目将继续正常工作?

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

4 个答案:

答案 0 :(得分:2)

首先,你应该读到:

对您的问题的简短回答:除非清除缓存或依赖关系的版本发生变化,否则您的项目仍将构建

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

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:2)

您应该将要安装的库的备份副本保留为依赖项,但在此之前您不应该真正担心它。

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

这不仅适用于Gradle,而且适用于任何托管软件包管理解决方案所依赖的任何此类依赖项。因此,同样的建议也适用于像NPM这样的系统。

在开发的某个阶段你应该问自己的问题"我可以在5年后再次构建这个来修复一台新机器上的错误,其中包含我拥有的所有数据,并且可能仍然可以访问5几年?",因为你的本地依赖缓存可能在那时已经很久了,并且库的下载也可能会从互联网上消失。为了以防万一,将它们放在与其余代码相同的存储库中的某个地方是一个很好的做法。

答案 3 :(得分:1)

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

您可以详细了解gradle works的方式,以及gradle如何管理其缓存dependencies