从pom文件中删除<version>标签的快捷方式是什么?</version>

时间:2015-01-26 15:45:48

标签: maven plugins

我是否可以使用插件或工具快速删除pom defn中的所有<version>标签?

我有一些包含50-80个模块的多模块项目,每个模块都有一个<version>标签。但是,它们都是从公共父级继承的,所以我宁愿删除每个模块pom中的所有<version>定义,并让它继承父级的版本。

搜索&amp;替换显然会删除插件,依赖项等中的任何标记。

是否存在可以快速为我做这件事的事情?目前,我发现自己单独编辑每个文件,这很费时间。

1 个答案:

答案 0 :(得分:0)

经过一番头疼之后,我想出了一个相当简单的方法。

使用versions-maven-plugin,我能够以递归方式遍历应用程序中的每个模块,并将版本设置为某个已知字符串。然后,它就变成了一个简单的搜索和替换来删除那一个字符串。

例如:

find . -name pom.xml -exec mvn versions:set -DnewVersion=9999_TO_DELETE_9999 -f {} \;

然后它变成一个简单的搜索和替换来删除<VERSION>9999_TO_DELETE_9999</VERSION>字符串。

必须注意从find命令中排除父pom,否则它也将更新所有模块中的父pom版本。

也许不像Groovy那么优雅,但相当快速和简单。