由于Nexus返回400 Bad Request,因此Gradle构建失败

Rol*_*der 6 nexus gradle

我们有一个公司范围内的Nexus 3服务器

  • 托管我们自己的文物和
  • 用作Maven Central和其他repos的代理.

开发人员使用两个存储库:

  • maven-releases用于所有已发布/稳定的工件,版本策略为 "Release"和
  • 使用版本策略"Snapshot"的所有快照工件的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"
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当Gradle尝试解析快照依赖关系时,它会询问发行版存储库,Nexus会回答

Error 400 Bad Request
Repository version policy: RELEASE does not allow version: 1.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)

并且构建失败了

> 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
Run Code Online (Sandbox Code Playgroud)

如何配置Gradle以便忽略此错误并尝试下一个存储库("快照")?或者是否可以将Nexus配置为返回404 Not Found而不是400 Bad Request?

版本:Gradle 2.9

Rol*_*der 2

RaGe 的评论是一个很好的暗示:依赖关系既不在snapshots也不在,releases而是在我不知道的第三个存储库中。将第三个存储库添加到 Gradle 后,依赖关系已解决。