首页 文章

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

提问于
浏览
8

在开发时,我们对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 回答

  • 7

    我相信,您应该使用 maven-release plugin 以maven中的方式解决问题 . 见:http://maven.apache.org/guides/mini/guide-releasing.html

    正如文档所说:

    maven-release插件的主要目的是提供一种标准机制,以便在直接开发团队之外发布项目工件 . 该插件提供了创建发布和相应更新项目SCM的基本功能 .

    UPDATE: 似乎你不是第一个有问题的人,请参阅:Maven versioning best practices那里的答案似乎相当完整 .

  • 3

    更简单的方法:使用maven-version-plugin更新版本,然后以自己的方式准备发布 .

相关问题