Maven 从1.12升级到2.14后找不到快照依赖项

Maven 从1.12升级到2.14后找不到快照依赖项,maven,gradle,dependencies,repository,snapshot,Maven,Gradle,Dependencies,Repository,Snapshot,在gradle从1.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

gradle
1.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.10snapshot
不在任何指定的存储库中。请首先检查gradle在这方面是否正确(通过查看给定的存储库)


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

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


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

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

我发现并修复了该问题。 由于版本号的格式,Gradle无法确定它们是快照。 例如:当版本号和“快照”之间有下划线时,
3.0.9_snapshot
gradle只会查找与该版本的依赖关系。但是如果中间有一个破折号而不是下划线(即
3.0.9-SNAPSHOT
),gradle将读取
maven metadata.xml
,并查找最新的快照。
在使用gradle 1.xxx版本时,下划线工作正常。

您可以发布生成文件吗?看起来不错。然而,您所说的“它使用gradle的1.xx版本构建”是什么意思?您在构建时是否遇到任何错误?如果是这样的话,你能同时发布错误消息吗?你能发布你的构建文件吗?这似乎是正确的。然而,您所说的“它使用gradle的1.xx版本构建”是什么意思?您在构建时是否遇到任何错误?如果是这样的话,您也可以发布错误消息吗?谢谢您的回答,我已经检查了依赖项是否存在,以及是否已将存储库添加到构建文件中,并清理了gradle缓存,删除了本地maven repo,然后按照您的建议重试,仍然得到了相同的问题。谢谢您的回答,我已经检查了依赖项是否存在,存储库是否添加到了构建文件中,清理了gradle缓存并删除了本地maven repo,然后按照您的建议重试,仍然得到了相同的问题。天哪,经过几天的努力,我终于找到了gradle的怪癖,这对我来说确实有效!Gradle团队真的应该把这放在他们的文档中!天哪,经过几天的努力,我终于明白了这一点!Gradle团队真的应该把这放在他们的文档中!