我正在寻找一种方法将pom属性更新为给定值,即我的pom.xml包含:
<properties>
<abc.def>aaaaa</abc.def>
<properties>
Run Code Online (Sandbox Code Playgroud)
现在我想打电话:
mvn some_plugin:some_goal -Dabc.def=XYZ
Run Code Online (Sandbox Code Playgroud)
最后我的pom.xml应该是这样的
<properties>
<abc.def>XYZ</abc.def>
<properties>
Run Code Online (Sandbox Code Playgroud)
我正在阅读关于maven-release-plugin和versions-maven-plugin但我没有看到任何匹配的目标.
提前感谢您的回复.
mvn版本:update-properties -Dproperties = [XYZ] -DincludeProperties = {abc.def}
在这里阅读更多.
接受的答案不适用于任意值,因为它执行健全性检查(链接到目标文档set-property
,因为由于某种原因文档update-properties
没有提及这一点)。
要在属性上设置一些任意值,请使用set-property
因为 - 如文档所述 - 它会跳过健全性检查:
mvn versions:set-property -Dproperty=your.property -DnewVersion=some_value
Run Code Online (Sandbox Code Playgroud)
好的,我找到了一些解决方案.我正在使用maven-replacer-plugin,其中:我在pom.xml中的属性定义:
<properties>
<abc.def>aaaaa</abc.def>
<properties>
Run Code Online (Sandbox Code Playgroud)
我的插件配置:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<configuration>
<file>pom.xml</file>
<replacements>
<replacement>
<token>${abc.def}</token>
<value>${replacer.abc.def}</value>
</replacement>
</replacements>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
最后我的maven调用:
mvn replacer:replace -Dreplacer.abc.def=XYZ
Run Code Online (Sandbox Code Playgroud)
它适用于我,但我不知道有没有更好的方法来实现它与maven-relase-plugin和/或版本-maven-plugin,如@khmarbaise和@Conan说.
归档时间: |
|
查看次数: |
11068 次 |
最近记录: |