Gradle 1.6。
看起来好像有一个SNAPSHOT Maven风格的依赖关系标志着依赖性在幕后改变。这是对的吗?
使用compile 'com.X.Y:myname:0.1.0-SNAPSHOT'
,如果我通过
task printAllDependencies << {
configurations*.allDependencies*.each {
def info = it.toString()
if (it instanceof ExternalModuleDependency) {
info += ',changing=' + it.isChanging()
}
System.out.println info
}
}
我注意到即使对于SNAPSHOT依赖项,更改也会报告为false:
...
DefaultExternalModuleDependency{group='com.X.Y', name='myname', version='0.1.0-SNAPSHOT', configuration='default'},changing=false
...
所以我认为我必须为所有快照手动设置更改为true,但是当我设置
时configurations.all {
resolutionStrategy {
// don't cache changing modules at all
cacheChangingModulesFor 0, 'seconds'
}
}
我注意到所有快照依赖项(并且只有那些)实际上是根据找到它们的repo进行检查的(来自gradle缓存)。
Cached resource is up-to-date (lastModified: Thu Jun 13 14:39:31 CEST 2013). [HTTP: ...
答案 0 :(得分:3)
是的,根据Gradleware工程师的说法,这种行为似乎没有记录,但支持Maven存储库:
“如果版本号以-SNAPSHOT结尾,则在maven存储库中查找时会隐式更改,因为这是maven约定。”