我正在尝试创建一个可以更新多个Maven pom文件的自动发布脚本。目前,“发布脚本”是一个包含指令和一些示例sed命令的文本文件,它们假定旧版本号始终是唯一的。 (从1.8-SNAPSHOT
更新为1.9-SNAPSHOT
时,它会假定pom中任何位置1.8-SNAPSHOT
的每次出现都会引用此项目并需要更新)
我想通过正确阅读XML来确定需要更新的特定元素,从而使这更安全。因为生成的更改将提交给git存储库,所以我不希望对空格进行任何不必要的更改。
到目前为止,我已经提出了这个XQuery脚本
declare boundary-space preserve;
declare namespace mvn="http://maven.apache.org/POM/4.0.0";
declare variable $new_version external;
replace value of node //*[mvn:artifactId/text()="geowebcache"][mvn:groupId/text()="org.geowebcache"]/mvn:version with $new_version
我在xqilla中运行:
xqilla -i pom.xml -u -v new_version "TEST" test.xq
这会按预期更新版本号,但会删除大部分空白区域;这会导致一个丑陋而混乱的提交。
我没有与xqilla或XQuery结合,但我希望将依赖关系保持在最低限度。在Ubuntu 12.04的主存储库中可用的一个很小的传递依赖的小包是关于我正在寻找的。 p>