使用maven更改xml文件中特定标签的值
Posted
技术标签:
【中文标题】使用maven更改xml文件中特定标签的值【英文标题】:Change the value of specific tag in xml file using maven 【发布时间】:2020-10-20 03:50:52 【问题描述】:我的 xml 文件中有以下标记
<sequence name="Producers_Codes_In" onError="Producers_Fault" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
我想将属性 name="Producers_Codes_In" 替换为 name="Producers_Codes_In-1.0.0"。这与maven有关。 实际上可以通过这种方式使用maven-antrun-plugin重命名项目工件中的属性
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>artifacts_version</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<replaceregexp byline="true">
<regexp pattern="version="(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)?(?:(\d+)\.)?(\*|\d+)(-SNAPSHOT)?"" />
<substitution expression=" version="$project.version"" />
<fileset dir=".">
<include name="artifact.xml" />
</fileset>
</replaceregexp>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
当我指定要更改的文件时,问题就来了。 非常感谢您的帮助!
【问题讨论】:
【参考方案1】:我找到了答案。覆盖所有文件的关键是属性 --> flag="g" 就像在这个例子中
<replaceregexp
match=" context="/producers/(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)?(?:(\d+)\.)?(\*|\d+)""
replace=" context="/producers/$project.version""
flags="g"
byline="true">
<fileset dir="." includes="**/*.xml" />
</replaceregexp>
更多信息请访问此页面https://ant.apache.org/manual/Tasks/replaceregexp.html
【讨论】:
以上是关于使用maven更改xml文件中特定标签的值的主要内容,如果未能解决你的问题,请参考以下文章
在 NodeJs 中使用 fast-xml-parser 将特定标签解析为数组
java解析XML修改特定项的值然后保存xml文件,求高手帮忙 急需 在线等