Gradle 没有从 artifact repo 中提取最新版本?

Gradle does not pull latest version from artifact repo?

$ ./gradlew -v
Gradle 3.4.1

旧 Gradle 版本,我知道,但那是不同的 post。

我们的 build.gradle 文件中有这样的依赖项

dependencies {
  compile("com.company.myservice:myservice-client:10.+")
}

我注意到有时不会从存储库(在我们的例子中是 Nexus)中获取最新版本。 换句话说,如果我们将myservice-client-10.9.0.jar推送到我们的repo,然后我们运行一个具有上述依赖关系的构建,我们使用旧版本,例如, 10.8.x 在缓存中。为什么是这样?我知道我可以使用 --refresh-dependencies 但我不必更正?

当您说“有时”时,可能是在上次检查更新后的 24 小时内,如 by default, Gradle caches dynamic modules for 24 hours。如果你想在 24 小时之前强制执行更新检查,你确实需要使用 --refresh-dependencies.

或者像这样(在 Kotlin DSL 中)缩短已解析版本的缓存时间:

configurations.all {
    resolutionStrategy.cacheDynamicVersionsFor(10, "minutes")
}