在开发时,我们对maven模块使用SNAPSHOT版本(例如1.0-SNAPSHOT) .
例如,父模块的Maven Configugration:
<groupId>com.mycomp.basemodule</groupId>
<artifactId>base-module</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>base-module</name>
<modules>
<module>sub-module1</module>
<module>sub-module2</module>
<module>sub-module3</module>
<module>sub-module4</module>
</modules>
例如Child Module的Maven Configugration:
子模块-1:
<parent>
<groupId>com.mycomp.basemodule</groupId>
<artifactId>base-module</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.mycomp.sub-module1</groupId>
<artifactId>sub-module1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>sub-module1</name>
还要考虑其他子模块(2,3,4)的相同配置 .
在发布项目/补丁时,我们需要将此SNAPSHOT版本更改为实际发布版本 .
有一种粗略的方法可以改变版本 . 我可以转到父和所有子模块的每个pom.xml,并可以将SNAPSHOT版本更改为发布版本 .
有没有其他最佳实践来更改此SNAPSHOT版本以在公共位置发布版本,以便我不需要更新所有pom.xml文件?
2 回答
我相信,您应该使用
maven-release plugin
以maven中的方式解决问题 . 见:http://maven.apache.org/guides/mini/guide-releasing.html正如文档所说:
UPDATE: 似乎你不是第一个有问题的人,请参阅:Maven versioning best practices那里的答案似乎相当完整 .
更简单的方法:使用maven-version-plugin更新版本,然后以自己的方式准备发布 .