在构建grails项目时,如何重写用户Maven设置文件?



我正在使用Grails 2.4.1通过Jenkins构建一个Grails插件项目;Grails发行版插件(3.0.1)将该插件发布到我们的Nexus存储库。

在构建服务器上运行Jetbrains (Jetbrains)的用户已经有一个。m2/settings.xml文件。该文件定义了一些在尝试将插件发布到我们的nexus存储库时导致havok的镜像。在settings.xml文件中定义的镜像将所有内容重新路由到公共'group'。

我想做的是对特定的作业强制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>

根据Maven镜像指南,我尝试过:

<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>

张贴我的问题后,我意识到我没有尝试过一个模式…它似乎工作得很好:

<mirror>
    <id>nexus</id>
    <mirrorOf>!snapshots,!releases</mirrorOf>
    <name>Nexus Public Mirror</name>
    <url>http://maven.internal.website/nexus/content/groups/public</url>
</mirror>

最新更新