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

mvn package ignoring repository in pom.xml

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

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

这适用于此存储库中托管的所有 jar 文件。但是我们有一些额外的 jar 文件,我们推送到我们控制的服务器和 运行ning 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>

当我 运行 构建时,它会从主回购中提取任何需要的 jar 文件,但只是超时尝试提取此回购中不存在的 jar 文件与使用存储库中的pom.xml.

请注意,在 settings.xml 镜像部分,我尝试将 <mirrorOf> 更改为中心而不是 *,但这只会导致额外的错误。

我也曾尝试将此存储库设置为 settings.xml 中的辅助镜像,尝试注释掉 settings.xml 中的镜像并将其作为附加存储库放置在 [=25= 中],所有这些都没有找到正确的组合。看似简单的问题,却找不到答案。

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

第二个最佳解决方案:将您的镜像条目更改为 <mirrorOf>*,!companynamenexus</mirrorOf> 并在 settings.xml.

<repositories> 部分定义附加存储库