我使用Grails 2.4.1通过Jenkins& amp;来构建Grails插件项目。 Grails Release插件(3.0.1)将该插件发布到我们的Nexus存储库。
在我们的构建服务器上运行Jetbrains(jetbrains)的用户已经有一个.m2 / settings.xml文件。该文件定义了一些在尝试将插件发布到我们的nexus存储库时导致havok的Mirrors。 settings.xml文件中定义的镜像将所有内容重新路由到公共组'。
我想做的是针对特定的作业强制maven要么一起忽略settings.xml文件,要么指定我自己的文件。
我可以将文件放在M2_HOME / conf目录中,但由于用户目录已经有一个包含镜像的settings.xml文件,所以我在M2_HOME / conf目录中所做的任何操作都会被忽略。
我已经看过-s file-name-here解决方案了,但是在构建时我没有看到通过grails publish-plugin命令传递的方法。
我也愿意接受重新定义我们镜像的解决方案,以便除了我们的内部存储库之外的所有内容都被重新路由。
我拥有的镜像块是:
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus Public Mirror</name>
<url>http://maven.internal.website/nexus/content/groups/public</url>
</mirror>
根据the Maven Mirror guide,我已尝试过:
<mirror>
<id>nexus</id>
<mirrorOf>external:*</mirrorOf>
<name>Nexus Public Mirror</name>
<url>http://maven.internal.website/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>nexus</id>
<mirrorOf>external:*,!snapshots,!releases</mirrorOf>
<name>Nexus Public Mirror</name>
<url>http://maven.internal.website/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>nexus</id>
<mirrorOf>*,!snapshots,!releases</mirrorOf>
<name>Nexus Public Mirror</name>
<url>http://maven.internal.website/nexus/content/groups/public</url>
</mirror>
答案 0 :(得分:0)
在发布我的问题后,我立刻意识到我没有尝试过一种模式......它似乎工作得很好:
<mirror>
<id>nexus</id>
<mirrorOf>!snapshots,!releases</mirrorOf>
<name>Nexus Public Mirror</name>
<url>http://maven.internal.website/nexus/content/groups/public</url>
</mirror>