将 URL 覆盖到 pom.xml 中指定的 nexus 存储库

Override URL to nexus repository specified in pom.xml

我有一个 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>

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

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

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

这是在 2008 年提出的要求 (!) issue 295: "distributionManagement.site.url configurable from the command line"

对于您的情况,检查通过 property altDeploymentRepository 是否有帮助:

-DaltDeploymentRepository=...

更准确地说,如“Maven deploy:deploy using -DaltDeploymentRepository

-DaltDeploymentRepository=releaseRepository::default::http://your.repo.url

"defaut" 是 maven2 布局("legacy" 适用于 maven 1)

为了覆盖,可以在settings.xml文件中设置

在我使用的 Jenkins 版本中,是 ver. 1.602,如果您将项目配置为 Maven 项目,您可以指定一个 "Deploy artifacts to Maven repostitory" post 构建操作,您可以为其指定目标存储库。