在开发过程中,我们对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文件?
答案 0 :(得分:7)
我相信,您应该使用maven-release plugin
以maven中的方式解决问题。请参阅:http://maven.apache.org/guides/mini/guide-releasing.html
正如文档所说:
maven-release插件的主要目的是提供一种标准机制,以便在直接开发团队之外发布项目工件。该插件提供了创建发布和相应更新项目SCM的基本功能。
<强>更新强> 似乎你不是第一个有问题的人,请参阅:Maven versioning best practices 那里的答案似乎相当完整。
答案 1 :(得分:3)
更简单的方法:使用maven-version-plugin更新版本,然后以自己的方式准备发布。