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


当前回答

您可以删除特定组或工件id的缓存,而不是删除整个gradle缓存,就像这里的一些答案所建议的那样。我在我的.bash_profile中添加了以下函数:

deleteGradleCache() {
  local id=$1
  if [ -z "$id" ]; then
    echo "Please provide an group or artifact id to delete"
    return 1
  fi
  find ~/.gradle/caches/ -type d -name "$id" -prune -exec rm -rf "{}" \; -print
}

用法:

$ deleteGradleCache com.android.support

然后,在下一次构建或重新同步时,gradle将重新下载依赖项。

其他回答

对于大多数情况,只需简单地重新构建项目就可以了。有时你必须运行。/gradlew build——refresh-dependencies,就像前面提到的那样(需要很长时间,取决于你有多少依赖)。无论如何,有时这些都不会工作:依赖项不会被更新。然后,你可以这样做:

从gradle文件中删除依赖项 运行/调试你的项目并等待它失败(以NonExistingClass的原因) 点击“构建项目”并等待它成功完成 再次运行/调试

这很荒谬,看起来很疯狂,但我实际上每天都在使用这个过程,只是因为我需要的依赖关系可以更新几十次,而任何适当的解决方案都不会有任何效果。

删除该目录:

C:\Users\[username]\.gradle

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

对于Windows……为了让gradle重新下载特定的依赖项:

从下面的目录中删除要重新下载的依赖项: C:\Users\ %用户名% \模块2 \ \ .gradle \缓存文件- 2.1 删除该路径下的所有元数据目录: C:\Users\ %用户名% \模块2 \ \ .gradle \缓存元数据- * 在项目的根目录下运行gradle build(如果使用gradle wrapper,则运行gradlew build)。

注意:上述文件路径中的数字可能与您不同。

只有手动删除缓存文件夹中的特定依赖才有效…由企业回购部门的同事制作的工艺品。