SNAPSHOT版本隐含的“改变”属性?

时间:2013-06-18 07:24:02

标签: gradle

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: ...

1 个答案:

答案 0 :(得分:3)

是的,根据Gradleware工程师的说法,这种行为似乎没有记录,但支持Maven存储库:

http://forums.gradle.org/gradle/topics/how_to_get_gradle_to_download_newer_snapshots_to_gradle_cache_when_using_an_ivy_repository#reply_8068039

“如果版本号以-SNAPSHOT结尾,则在maven存储库中查找时会隐式更改,因为这是maven约定。”