【发布时间】:2017-03-16 00:42:45
【问题描述】:
我们有一个公司范围内的 Nexus 3 服务器
- 托管我们自己的工件并
- 用作 Maven Central 和其他存储库的代理。
开发人员使用两个存储库:
- 所有已发布/稳定工件的 maven-releases,带有 version policy“Release”和
- 具有版本策略“快照”的所有快照工件的 maven-snapshots。
两个存储库都在 Gradle 构建中使用:
repositories {
maven {
name "snapshots"
url "http://nexus3.server:8081/repository/maven-snapshots"
}
maven {
name "releases"
url "http://nexus3.server:8081/repository/maven-releases"
}
}
现在,当 Gradle 尝试解决快照依赖关系时,它会询问版本存储库,Nexus 会回答
Error 400 Bad Request
Repository version policy: RELEASE does not allow version: 1.0-SNAPSHOT
构建失败
> Could not resolve group.id:artifact-id:1.0-SNAPSHOT.
Required by:
:my-project:unspecified
> Could not resolve group.id:artifact-id:1.0-SNAPSHOT.
> Could not get resource 'http://nexus3.server:8081/repository/maven-releases/group/id/artifact-id/1.0-SNAPSHOT/artifact-id-1.0-SNAPSHOT.pom'.
> Could not GET 'http://nexus3.server:8081/repository/maven-releases/group/id/artifact-id/1.0-SNAPSHOT/artifact-id-1.0-SNAPSHOT.pom'. Received status code 400 from server: Bad Request
我需要如何配置 Gradle 以便忽略此错误并尝试下一个存储库(“快照”)?或者是否可以将 Nexus 配置为返回 404 Not Found 而不是 400 Bad Request?
版本:Gradle 2.9
【问题讨论】:
-
Gradle 按照声明的顺序检查 repos。您的快照依赖项在哪个存储库中?从错误消息来看,gradle 似乎已经尝试了快照存储库,没有找到依赖项,尝试了发布版本,然后失败了。