编写了一个demo项目,需要导入maven仓库里最新版本的snapshot依赖。
而实际测试发现,如果我给依赖的版本号写的是SNAPSHOT后缀,例如1.0-SNAPSHOT,而不是具体的版本号,那么新版本发布到仓库后,这个demo项目并不会自动更新到最新版本。
经过测试,最后找到了这个解决方案:
dependencies中,为需要实时更新的依赖配置为isChanging = true,例如:
implementation("group:name:1.0-SNAPSHOT") { isChanging = true }
在build.gradle.kts根层级增加以下内容:
configurations.all {
resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS)
}
值得一提的是,解决方案页面里的best answer反而没有用,虽然看到日志里是下载了新版依赖的,但实际运行时用的还是旧版,可能是因为IDE自己也有缓存。