我们无法使用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中,所有这些都没有找到正确的组合。似乎是一个简单的问题,但答案正在躲避我们。
最佳解决方案:不要尝试访问两个不同的内部Nexus,而是在其中一个Nexus中设置一个存储库组,其中包含所有其他存储库(可以托管或代理,内部或外部)。然后,您只需在该存储库组上设置镜像条目即可。
第二个最佳解决方案:将镜像条目更改为<mirrorOf>*,!companynamenexus</mirrorOf>
,并在<repositories>
的settings.xml
部分中定义其他存储库。