【发布时间】:2017-02-22 09:48:27
【问题描述】:
我有一个 gradle 项目依赖于另一个 gradle 项目。依赖项正在发布到我们内部的 nexus 服务器,并且可以很好地解决。
一旦在本地缓存了依赖项,我就无法刷新它,除非我将 --refresh-dependencies 传递给 gradle 命令(或从缓存中手动删除它)。
在互联网上搜索后,我发现很多人有同样的问题,建议将依赖项标记为更改(尽管这不是绝对必要的,因为它从名称 -SNAPSHOT 中隐含)并添加以下内容:
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
但是这对我不起作用,它会一直使用缓存版本,直到 gradle 默认 24 小时结束,然后它会重新下载它。
有谁知道我可能还缺少什么,或者我如何诊断 gradle 正在做什么以及为什么它不会下载新版本?
【问题讨论】:
-
嗯,
--refresh-dependencies选项正是出于这个原因。 -
但这会刷新所有依赖项,而不仅仅是 SNAPSHOT,所以这不是我想要做的,因为它会使缓存毫无意义。
-
将依赖项显式标记为更改是否有帮助?
compile ('groupId:artifactId:X.X.X-SNAPSHOT'){ changing=true } -
不,这对我没有帮助。
-
这应该可以正常工作。您能否提供相关的依赖声明。还可以尝试使用
-i运行以获取有关幕后情况的更多信息。