如何在Maven / Jenkins作业中替换POM中的属性?

我有一个包含客户端和服务器组件的项目。两者都有自己的Maven多模块构建项目。

各个前端模块中必须引用正确的服务器版本。为此,我在客户端父POM中设置了一个属性,如下所示:

<properties>

<server.version>1.2.3</server.version>

</properties>

现在,我想在Jenkins构建作业期间/之后更新 POM中 的版本号(即,不只是使用-D …从命令行中注入其他版本)。有没有办法做到这一点?

回答:

我发现了com.google.code.maven-replacer-

plugin:replacer适用于我的情况的Maven插件。它接受一个xpath和一个正则表达式来定义要在XML文件中替换的内容。

插件配置示例:

<plugin>

<groupId>com.google.code.maven-replacer-plugin</groupId>

<artifactId>replacer</artifactId>

<version>1.5.3</version>

<configuration>

<file>${project.basedir}/pom.xml</file>

<xpath>/project/properties/server.version/text()</xpath>

<token>^.*$</token>

<value>${newServerVersion}</value>

</configuration>

</plugin>

并且可以为每个受影响的Maven模块运行该插件:

mvn --non-recursive replacer:replace -DnewServerVersion=xxxx

以上是 如何在Maven / Jenkins作业中替换POM中的属性? 的全部内容, 来源链接: utcz.com/qa/409209.html

回到顶部