协慌网

登录 贡献 社区

如何强制 gradle 重新下载依赖项?

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

答案

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

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


在 Unix 系统上,您可以使用以下方法删除 Gradle 下载的所有现有工件(工件和元数据):

rm -rf $HOME/.gradle/caches/

如果您使用的是 Gradle 的最新版本,则可以使用 --refresh-dependencies 选项。

./gradlew build --refresh-dependencies

您可以参考Gradle 手册

--refresh-dependencies 选项告诉 Gradle 忽略所有已缓存模块和工件的缓存条目。将对所有已配置的存储库执行全新的解析,并重新计算动态版本,刷新模块并下载工件。

您可以通过将依赖项标记为 “更改” 来告诉 Gradle 重新下载构建脚本中的某些依赖项。然后 Gradle 将每 24 小时检查一次更新,但这可以使用 resolutionStrategy DSL 进行配置。我发现将其用于 SNAPSHOT 或 NIGHTLY 构建很有用。

configurations.all {
    // Check for updates every build
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

展开范围:

dependencies {
    implementation group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}

浓缩:

implementation('group:projectA:1.1-SNAPSHOT') { changing = true }

我在此论坛线程中找到了此解决方案。