我如何告诉gradle从存储库中重新下载依赖项?
当前回答
可以删除缓存jar的文件夹。
在我的例子中,在Mac上,库被缓存在路径:
/ /用户/ MY_NAME / .gradle /缓存模块2 - 2.1 / cached-library-to-remove /文件
我删除了缓存的库文件夹(在上面的例子中是“cache -library-to-remove”),删除了我的项目的构建文件夹,并重新编译。 然后下载了新库。
其他回答
对于大多数情况,只需简单地重新构建项目就可以了。有时你必须运行。/gradlew build——refresh-dependencies,就像前面提到的那样(需要很长时间,取决于你有多少依赖)。无论如何,有时这些都不会工作:依赖项不会被更新。然后,你可以这样做:
从gradle文件中删除依赖项 运行/调试你的项目并等待它失败(以NonExistingClass的原因) 点击“构建项目”并等待它成功完成 再次运行/调试
这很荒谬,看起来很疯狂,但我实际上每天都在使用这个过程,只是因为我需要的依赖关系可以更新几十次,而任何适当的解决方案都不会有任何效果。
这对我很管用。 通过取消文件>设置>Gradle>离线工作按钮,确保Gradle没有被设置为离线。
将其添加到构建的顶层。Gradle,很高兴有上面的依赖
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
我确保我的依赖是这样写的:
implementation('com.github.juanmendez:ThatDependency:ThatBranch-SNAPSHOT') {
changing = true
}
之后,我打开Android Studio中的Gradle面板,点击蓝色圆圈箭头按钮。我总是能看到我的更新得到一个新的新鲜副本。
通常,您可以使用命令行选项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.
如果你正在使用eclipse,如果你想强迫eclipse重新加载依赖项,你可以尝试下面的命令
gradlew clean cleaneclipse build eclipse --refresh-dependencies
对于那些想知道在哪里运行gradle命令的人:
Open Android Studio 点击终端(你会在Android Studio的基础上找到它) 命令工具将打开 输入命令gradlew build——refresh-dependencies
推荐文章
- Jersey在未找到InjectionManagerFactory时停止工作
- Gradle代理配置
- Gradle替代mvn安装
- 为什么要把Gradle Wrapper提交给VCS?
- 在构建中编写注释的语法是什么?gradle文件?
- 它目前正在被另一个Gradle实例使用
- 多个dex文件定义了landoid /support/v4/accessibilityservice/AccessibilityServiceInfoCompat
- Gradle:无法确定java版本从11.0.2开始
- Gradle构建脚本依赖项
- 如何确定Gradle的版本?
- Android Studio突然无法解析符号
- 没有找到Gradlew命令?
- 无法找到com.google.android.gms:play-services:3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1.11 6.1.71 6.5.87
- .dex文件中方法引用的数量不能超过64k API 17
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?