我们无法使用mvn软件包从远程存储库中提取项目。在maven安装的文件夹config / settings.xml中,我们声明内部中央存储库:
<mirrors>
<mirror>
<id>advnexus</id>
<mirrorOf>*</mirrorOf>
<url>http://internalserver/nexus/content/groups/public</url>
</mirror>
</mirrors>
这适用于此仓库中托管的所有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>
运行构建时,它会从主存储库中提取所有需要的jar文件,但是与使用pom.xml中的存储库相比,尝试提取该存储库中不存在的jar文件只是超时。 / p>
请注意,在settings.xml镜像部分中,我尝试将<mirrorOf>
更改为居中而不是*,但这只会引起其他错误。
我也尝试过将这个仓库作为settings.xml中的辅助镜像,尝试注释掉settings.xml中的镜像并将其作为pom.xml中的附加存储库,所有这些都没有找到正确的组合。似乎是一个简单的问题,但是答案却使我们难以理解。
答案 0 :(得分:0)
最佳解决方案:不要尝试访问两个不同的内部Nexus,而应在Nexus之一中设置一个存储库组,其中包含所有其他存储库(可以是内部或外部托管或代理)。然后,您只需在该存储库组上设置一个镜像条目就可以了。
第二个最佳解决方案:将镜像条目更改为<mirrorOf>*,!companynamenexus</mirrorOf>
,并在<repositories>
的{{1}}部分中定义其他存储库。