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


当前回答

您需要重新下载它,因此您可以手动下载并替换损坏的文件,并再次同步您的项目。去这个位置 C: \用户【用户名】.gradle \包装\ dist gk2rcmfc6p2dg9u9ohc3hw9 55 \ gradle3.3-all \ \ gradle all.zip——3.3 在此删除gradle3.3allzip,并重新从该站点下载 https://services.gradle.org/distributions/ 找到相同的文件,下载并粘贴到该位置 然后同步你的项目。 希望它也适用于你。

其他回答

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

rm -rf $HOME/.gradle/caches/

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

./gradlew build --refresh-dependencies

有两种方法:

使用命令行选项刷新依赖项现金。 您可以删除本地缓存,其中artefast是由Gradle和触发构建缓存

使用——refresh-dependencies选项:

./gradlew build --refresh-dependencies

简单解释——refresh-dependencies选项告诉Gradle忽略已解析模块和工件的所有缓存条目。

长explanantion

WIth –refresh-dependencies’ Gradle will always hit the remote server to check for updated artifacts: however, Gradle will avoid downloading a file where the same file already exists in the cache. First Gradle will make a HEAD request and check if the server reports the file as unchanged since last time (if the ‘content-length’ and ‘last-modified’ are unchanged). In this case you’ll get the message: "Cached resource is up-to-date (lastModified: {})." Next Gradle will determine the remote checksum if possible (either from the HEAD request or by downloading a ‘.sha1’ file).. If this checksum matches another file already downloaded (from any repository), then Gradle will simply copy the file in the cache, rather than re-downloading. In this case you’ll get the message: "“Found locally available resource with matching checksum: [{}, {}]”.

使用删除: 当你删除缓存

rm -rf $HOME/.gradle/caches/

你只需要清理所有缓存的jar和sha1和,Gradle在你的机器上没有工件的情况下,必须下载所有东西。是的,第一次它将100%工作,但是当另一个快照被释放并且它是依赖树的一部分时,您将再次面临刷新或清除缓存的选择。

如果你正在使用eclipse,如果你想强迫eclipse重新加载依赖项,你可以尝试下面的命令

gradlew clean cleaneclipse build eclipse --refresh-dependencies

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

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

只需删除需要刷新的组。

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

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

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

Android Studio 3.4.1

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

这将解决您的问题。