gradle 从 1.12 升级到 2.14 后无法找到快照依赖项

Unable to find snapshot dependencies after gradle upgrade from 1.12 to 2.14

gradle1.12 升级到 2.14 后,maven 存储库中依赖项的快照版本未被识别。存储库设置正确并且 maven-metadata.xml 和依赖项存在,并且它使用 gradle 的 1.xx 版本构建。在 2.xxx 的 gradle 发行说明中也找不到任何内容。有没有人遇到过这种情况? 以下是我的 build.gradle 文件。

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
// Use 'maven central' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
mavenCentral()
 maven {
    name = 'Public'
    credentials {
        username = 'abc'
        password = 'abc'
    }
    url 'http://mydomain/nexus/content/groups/public/'
}

}

// In this section you declare the dependencies for your production and test   code
dependencies {
// The production code uses the SLF4J logging API at compile time
compile( 

[group: 'com.test.comp', name: 'comp-app-interface', version: "3.0.9_SNAPSHOT"],
[group: 'com.test.comp', name: 'comp-app-common', version: "3.0.10_SNAPSHOT", classifier: 'lib'],
)
// Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile "junit:junit:4.11"
}

以下是我在使用 gradle 2.14 构建时收到的错误消息:

FAILURE: Build failed with an exception.

\* What went wrong:
Could not resolve all dependencies for configuration ':COMP-Testing-  Common:compileClasspath'.

\> Could not find com.test.comp:comp-app-common:3.0.10_SNAPSHOT.
 Searched in the following locations:
  file:/C:/Users/myname/.m2/repository/com/test/comp/comp-app-common/3.0.10_SNAPSHOT/comp-app-common-3.0.10_SNAPSHOT.pom
  file:/C:/Users/myname/.m2/repository/com/test/comp/comp-app-common/3.0.10_SNAPSHOT/comp-app-common-3.0.10_SNAPSHOT-lib.jar
  http://example.com/nexus/content/groups/public/com/test/comp/comp-app-common/3.0.10_SNAPSHOT/comp-app-common-3.0.10_SNAPSHOT.pom
  http://example.com/nexus/content/groups/public/com/test/comp/comp-app-common/3.0.10_SNAPSHOT/comp-app-common-3.0.10_SNAPSHOT-lib.jar
  Required by:
  com.test.comp:COMP-Testing-Common:3.0.10

但是当使用 gradle 1.12 构建时,它会下载正确的快照。

该错误意味着所需的依赖项 com.test.comp:comp-app-common:3.0.10_SNAPSHOT 不在任何指定的存储库中。请首先检查 gradle 是否正确(通过查看给定的存储库)。

要更正错误,请检查是否包含所有相关存储库。如果错误仍然存​​在,请删除本地 Maven 存储库和 Gradle 缓存并重试。

我发现并解决了这个问题。 Gradle 由于版本号的格式,无法识别它们是快照。 例如:当版本号和 'snapshot' 之间有下划线时,3.0.9_SNAPSHOT gradle 只是查找与该版本的依赖关系。但是如果它之间有破折号而不是下划线(即 3.0.9-SNAPSHOT),gradle 将读取 maven-metadata.xml 并找到最新的快照。 使用 gradle 1.xxx 版本时下划线工作正常。