在我的maven settings.xml中是以下片段:
<mirrors>
<mirror>
<!--This sends everything to our company mirror -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>[company-mirror]</url>
</mirror>
</mirrors>
这会将所有内容发送到我们公司的镜像中,如果无法解决,我们将从maven存储库中获取它。
现在,我们还通过其Maven联系从某一种技术的供应商那里收到了错误修复。问题是我们公司的镜像不会自动查询此关系,我可以在settings.xml中轻松提供以下镜像编辑:
<mirrors>
<mirror>
<id>[vendor-id]</id>
<mirrorOf>[vendor-mirror]</mirrorOf>
<url>[vendor-url]</url>
</mirror>
<mirror>[company-mirror-settings]</mirror>
</mirrors>
然后它将查询正常,但是对于仅查询公司镜像的公司维护的构建服务器,我们无法做到这一点。
有没有一种方法可以在我们本地的pom.xml / project中进行操作而无需进行任何外部设置?
我在我们的pom.xml中尝试了以下操作,但没有成功:
<project>
...
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>[vendor-id]</id>
<name>[vendor-name]</name>
<url>[vendor-url]</url>
</repository>
</repositories>
...
</project>
运行mvn全新安装会出现以下错误:
[ERROR] Failed to execute goal on project <project-name>: Could not resolve dependencies for project <project-name>:jar:1.2.0-SNAPSHOT: Coul
d not find artifact <vendor-dependency> in <company-mirror>
答案 0 :(得分:1)
DatabaseHelper mydb
中的镜像定义允许重载默认settings.xml
存储库以及POM中定义的任何存储库。因此,如果构建服务器使用设置文件将公司管理的存储库定义为central
,则它将用于每个POM定义的存储库,并且基本上会忽略这些定义。
因此,应该修改构建服务器使用的<mirrorOf>*</mirrorOf>
,以便并非所有存储库都得到镜像,或者应该将公司管理的存储库配置为镜像供应商的存储库。