在Maven中有一种方法可以像Ant的build.properties文件一样替换POM文件中的属性吗?

时间:2012-03-09 20:47:19

标签: maven properties pom.xml

我不是在讨论Maven Properties插件或资源过滤。我希望Maven替换POM本身的属性。例如,假设我有几个引用特定依赖项版本号的POM。我希望能够为每个POM加载一个属性文件,然后更改一次值。然后,Maven会在处理POM之前读取属性文件并进行相应的替换。我相信这是Ant在一次传递中的表现,然后属性在build.xml中是不可变的。

2 个答案:

答案 0 :(得分:1)

如果适合您的情况,您可以在命令行上进行属性替换。我在命令行的pom中更改了我的项目版本(实际上是通过NAnt脚本)。例如:

mvn deploy -Dproject.version=1.00.00.0-Something-SNAPSHOT

您提到要更改父标记内的属性。在maven 2(不确定maven 3)中,父标记内的任何内容都不能是属性,必须是实际值。 Maven不会在父标记中评估属性。

答案 1 :(得分:1)

您正在询问多模块构建,这通常会达到版本号。但简单的答案是:使用maven发布插件,这样您就不需要处理版本号了。或者您可以使用versions-maven-plugin以优雅的方式处理它们的修改。并且最好不要在pom中使用父类版本的属性(onr它会像你描述的那样工作)。