我如何告诉gradle从存储库中重新下载依赖项?


当前回答

要刷新缓存的“释放”版本,唯一的选择是清除本地缓存。

rm -rf $HOME/.gradle/caches/

要刷新缓存的“快照”版本,可以:

./gradlew build --refresh-dependencies

其他回答

通常,您可以使用命令行选项refresh-dependencies刷新缓存中的依赖项。你也可以删除~/.gradle/caches下的缓存文件。在下一次构建时,Gradle会再次尝试下载它们。

您的具体用例是什么?您使用动态依赖版本还是快照版本?


在Unix系统上,你可以删除Gradle已经下载的所有现有工件(工件和元数据):

rm -rf $HOME/.gradle/caches/

注意——refresh-dependencies不会总是重新下载每个工件;它将使用与存储库中存在的内容匹配的现有副本。从Gradle用户指南,刷新依赖:

The --refresh-dependencies option tells Gradle to ignore all cached entries for resolved modules and artifacts. A fresh resolve will be performed against all configured repositories, with dynamic versions recalculated, modules refreshed, and artifacts downloaded. However, where possible Gradle will check if the previously downloaded artifacts are valid before downloading again. This is done by comparing published SHA1 values in the repository with the SHA1 values for existing downloaded artifacts. [...] It’s a common misconception to think that using --refresh-dependencies will force download of dependencies. This is not the case: Gradle will only perform what is strictly required to refresh the dynamic dependencies. This may involve downloading new listing or metadata files, or even artifacts, but if nothing changed, the impact is minimal.

删除所有缓存会重新下载所有依赖项。所以它需要很长时间,这是无聊的事情等待一次又一次重新下载所有的依赖。

我怎么能解决这个问题下面的方式。

只需删除需要刷新的组。

例如:如果我们想要刷新com.user.test组

rm -fr ~/.gradle/caches/modules-2/files-2.1/com.user.test/

然后从构建中删除依赖项。Gradle和重新添加它。 然后它将刷新我们想要的依赖项。

Android Studio 3.4.1

简单地打开gradle选项卡(可以位于右侧),右键单击列表中的父项(应该称为“Android”),然后选择“刷新依赖项”。

这将解决您的问题。

如果您正在使用Intellij,您可以右键单击根项目,然后选择刷新gradle依赖项。

要刷新缓存的“释放”版本,唯一的选择是清除本地缓存。

rm -rf $HOME/.gradle/caches/

要刷新缓存的“快照”版本,可以:

./gradlew build --refresh-dependencies