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

问题描述 投票:0回答:4

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

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

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

android gradle
4个回答
2
投票

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

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

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

在开发过程中你应该问自己的是“我可以在5年内再次构建这个来修复一台新机器上的错误,其中包含我拥有的所有数据,并且可能在5年内仍然可以访问这些数据吗?”,因为你的此时,本地依赖性缓存可能已经很久了,并且库的下载也可能会从Internet上消失。为了以防万一,将它们放在与其余代码相同的存储库中的某个位置是一个很好的做法。


2
投票

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

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

  • 您更新了项目中的库版本,并且该项目包也已删除
  • 您可以使用仍可从项目访问的旧版本的库和包。

2
投票

首先,你应该读到:

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

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


1
投票

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

你可以阅读更多关于如何gradle works,以及gradle如何管理他的缓存dependencies

© www.soinside.com 2019 - 2024. All rights reserved.