Maven:在发布时将SNAPSHOT更改为发布父/子模块版本的最佳方法?

时间:2013-01-30 13:58:12

标签: maven-3

在开发过程中,我们对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 个答案:

答案 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更新版本,然后以自己的方式准备发布。