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

Maven 3 Maven:在发布时将父/子模块的快照更改为发布版本的最佳方法?,maven-3,Maven 3,在开发过程中,我们对maven模块使用快照版本(例如1.0-SNAPSHOT) 例如,父模块的Maven配置: <groupId>com.mycomp.basemodule</groupId> <artifactId>base-module</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name&

在开发过程中,我们对maven模块使用快照版本(例如1.0-SNAPSHOT)

例如,父模块的Maven配置:

<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>
com.mycop.basemodule
基本模块
1.0-快照
聚甲醛
基本模块
子模块1
子模块2
子模块3
子模块4
例如,子模块的Maven配置:

<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>
子模块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>

com.mycop.basemodule
基本模块
1.0-快照
com.mycop.sub-module1
子模块1
1.0-快照
战争
子模块1

也可考虑其他子模块(2,3,4)的相同配置。

在发布项目/补丁时,我们需要将此快照版本更改为实际发布版本

有一种简单的方法可以改变版本。我可以访问父模块和所有子模块的每个pom.xml,并可以将快照版本更改为发布版本


是否有其他最佳做法可以将此快照版本更改为公共场所的发布版本,这样我就不需要更新所有pom.xml文件?

我认为,您应该使用
maven release plugin
以解决maven中的问题。见:

正如文件所说:

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

更新: 看来你不是第一个提出这个问题的人,看:
答案似乎很完整。

更简单的方法是:使用更新版本,然后以自己的方式准备发布。

感谢Peter的回复。但是,似乎maven发布插件会在我们发布时自动增加版本?如果我想要自己的版本增量呢?我想,我看不出这有什么意义。将您的期望与发布插件提供给您的相比,结果有什么不同?@NarendraVerma您自己做增量比maven发布插件自动做增量的原因是什么?如果您喜欢与maven release插件不同的东西,建议您可以使用一些命令行选项来影响它的行为。@Khmarbaise:假设目前我们正在开发1.5-SNAPSHOT版本。在发布应用程序时,如果我使用maven release plugin,它将以1.5版本发布代码,并将我的开发环境转换为1.6-SNAPSHOT。如果我想要我的开发版本1.5.1-SNAPSHOT而不是1.6-SNAPSHOT,该怎么办?@NarendraVerma的回答是否有帮助:?可以说更简单,但不是maven项目应该使用的“约定优于配置”方法。“配置优于转换”是由POM实现的,而不是发布插件。版本插件也是真正的Maven插件。并非所有人都喜欢发布插件,他们使用自己的方式发布产品: