具有相同凭据的多个Maven存储库

时间:2019-02-14 11:40:25

标签: java maven

我正在使用Apache Maven 3.5.2,并且遇到相同的问题。我尝试使用相同的帐户(用户名+密码)从两个nexus-releases-repository中提取依赖项

我的.m2/setting.xml包含:

<servers>
  <server>
    <id>nexus</id>
    <username>username</username>
    <password>password</password>
  </server>   
</servers>

我的项目的pom.xml包含:

 <repositories>
    <repository>
      <id>nexus</id>
      <url>https://DOMAIN/repository/repoA-maven-public/</url>
    </repository>

    <repository>
      <id>nexus</id>
      <url>https://DOMAIN/repository/repoB-maven-public/</url>
    </repository>
  </repositories>

我使用相同的帐户登录两个存储库,但出现Maven错误 repositories.repository.id must be unique。该如何解决

2 个答案:

答案 0 :(得分:1)

摘自Repositories section of pom.xml文档:

  

id,名称:id用于在许多存储库中唯一地标识该存储库,并且该名称是人类可读的形式。

因此,该ID应该是唯一的。

在我们的情况下,在settings.xml中,我们有多个服务器定义,它们具有相同的凭据但具有不同的id值。

答案 1 :(得分:0)

我也在使用Nexus Repository,但没有遇到问题。 检查我的pom.xml文件:

POM.XML

 <distributionManagement>
        <repository>
            <id>nexus</id>
            <name>maven-releases</name>
            <url>http://IP:PORT/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus</id>
            <name>comquent</name>
            <url>http://IP:PORT/repository/maven-artifact/</url>
        </snapshotRepository>
    </distributionManagement>

LINUX-JENKINS命令

通过在我的Jenkins管道中键入sh "mvn deploy -Dmaven.test.skip=true",工件和罐子将正确保存在存储库中。

提示

请小心,因为很多时候您想重新上传工件或发行版(顺便说一句,发行版是不好的策略)。因此,您需要从Nexus存储库中启用重新部署功能。这只是一个单击选项。您还将找到here

希望我能帮上忙!