覆盖 pom.xml 中指定的 Nexus 存储库的 URL

fas*_*ser 3 nexus maven jenkins

我有一个 Web 项目,在 jenkins 上成功构建后,我将其部署到 Nexus 存储库。目前在项目中,pom.xml我有以下配置,其中 Nexus 存储库的主机和端口是硬编码的:

<profiles>
        <profile>
            <id>deploy-snapshot</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <distributionManagement>
                <snapshotRepository>
                    <id>snapshots</id>
                    <name>Repository for snapshots</name>
                    <url>http://ip1:port1/nexus/content/repositories/snapshots</url>
                </snapshotRepository>
            </distributionManagement>
        </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

我的目标是覆盖 jenkins 中的 nexus url,而不对 pom.xml 进行任何更改,因为目前 pom.xml 中的配置用于另一个无法重新配置的环境。

考虑到将来我将为负责部署 npm 包的其他工作做类似的事情,最好知道可以在 jenkins 上以哪种方式完成。

我研究了以下 jenkins 插件https://wiki.jenkins.io/display/JENKINS/Nexus+Artifact+Uploader,但不确定这是否是真正的插件,也不确定该插件是否适合 zip 存档npm 构建。

Von*_*onC 5

这是 2008 年提出的要求(!),问题为295:“distributionManagement.site.url 可从命令行配置”

对于您的情况,请检查传递该属性altDeploymentRepository是否有帮助:

-DaltDeploymentRepository=...
Run Code Online (Sandbox Code Playgroud)

更准确地说,如“ Maven 部署:使用以下方式部署-DaltDeploymentRepository

-DaltDeploymentRepository=releaseRepository::default::http://your.repo.url
Run Code Online (Sandbox Code Playgroud)

defaut”是maven2布局(“ legacy”是maven 1)