maven settings.xml中的多个存储库。 Maven尝试从错误的存储库下载

问题描述 投票:0回答:1

我的maven settings.xml(位于我的Jenkins的managedfiles部分中)有多个存储库。

<repositories>
        <repository>
          <id>nexus-abc</id>
          <name>Nexus Everything Repository</name>
          <url>https://nexus.us.abc.com/repository/abc-snapshots-maven-hosted/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases> 
      <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>      
        </repository>
        <repository>
      <id>newutil</id>
      <name>newutil Repository</name>
      <url>https://nexus.us.abc.com/repository/cd-datautil-releases-maven-hosted/</url>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
    </repository>
      </repositories>

我假设存储库部分仅用于依赖项下载。我的一个项目从https://nexus.us.abc.com/repository/cd-datautil-releases-maven-hosted/下载依赖项,并且工作正常。我有另一个项目需要从https://nexus.us.abc.com/repository/abc-snapshots-maven-hosted/下载依赖项jar,但在构建它时会在Jenkins日志中收到此消息:

无法读取com.abc1.abc2.abc:abc-spanner-model:jar:1.0_GCP-SNAPSHOT的工件描述符:无法传输工件com.abc1.abc2.abc:abc-spanner-model:pom:1.0 _GCP-SNAPSHOT从/到newutil(https://nexus.us.abc.com/repository/cd-datautil-releases-maven-hosted/):无法传输文件:https://nexus.us.abc.com/repository/cd-datautil-releases-maven-hosted/com/abc1/abc2/abc/abc-spanner-model/1.0_GCP-SNAPSHOT/abc-spanner-model-1.0_GCP-SNAPSHOT.pom。返回码是:400,ReasonPhrase:仓库版本策略:RELEASE不允许版本:1.0_GCP-SNAPSHOT。 -> [帮助1]

它正在尝试从其他存储库(newutil)下载并失败。如何使它从nexus-abc下载?我已经更改了存储库的顺序,但是它仍然尝试使用错误的存储库,但失败了。下载依赖项时,Maven遵循什么顺序?为什么不尝试从nexus-abc下载?我是否需要在项目的pom.xml中添加任何内容?

maven jenkins nexus maven-assembly-plugin
1个回答
0
投票

您正在settings.xml中声明一个既包含发行版又包含快照的Maven存储库。

nexus中的相应存储库配置仅在尝试获取/推送快照时允许发布。这是通过Maven存储库创建表单上的Version policy选项设置的,可以是ReleaseSnapshotMixed

[不幸的是,这是Nexus中Maven存储库的不变设置,这意味着,如果要更改它,除了在nexus中删除并重新创建存储库外,别无其他选择(如果需要,可以保存并重新上传相应的工件。您需要保留它们)。

© www.soinside.com 2019 - 2024. All rights reserved.