mvn包忽略pom.xml中的存储库

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

我们无法使用mvn包从远程存储库中获取项目。在maven安装文件夹中,config / settings.xml我们声明了我们的内部中央存储库:

<mirrors>
  <mirror>
    <id>advnexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://internalserver/nexus/content/groups/public</url>
  </mirror>
</mirrors>

这适用于此repo托管的所有jar文件。但我们有一些额外的jar文件,我们将其推送到我们控制下的服务器并运行Sonatype Nexus。所以在项目的pom.xml中,我们将远程仓库设置为:

<repositories>
  <repository>
    <id>companynamenexus</id>
    <name>Company Name Project Repo</name>
    <url>http://nexus.companyname.com:8081/repository/project-name</url>
    <layout>default</layout>
    <spanshots>
      <enabled>false</enabled>
    </spanshots>
  </repository>
</repositories>

当我运行构建时,它从主repo中提取任何所需的jar文件,但只是试图拉出这个repo上不存在的jar文件而不是使用pom.xml中的存储库。

请注意,在settings.xml镜像部分中,我尝试将<mirrorOf>更改为中心对*,但这只会导致其他错误。

我还尝试将此repo设置为settings.xml中的辅助镜像,尝试在settings.xml中注释掉镜像并将其作为附加存储库放在pom.xml中,所有这些都没有找到正确的组合。似乎是一个简单的问题,但答案正在躲避我们。

java maven repository nexus
1个回答
0
投票

最佳解决方案:不要尝试访问两个不同的内部Nexus,而是在其中一个Nexus中设置一个存储库组,其中包含所有其他存储库(可以托管或代理,内部或外部)。然后,您只需在该存储库组上设置镜像条目即可。

第二个最佳解决方案:将镜像条目更改为<mirrorOf>*,!companynamenexus</mirrorOf>,并在<repositories>settings.xml部分中定义其他存储库。

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