文章首发于:clawhub.club


Maven版本管理

X,Y,Z分别表示主版本号,次版本号,补丁版本号。
主版本号为0时,表示是开发阶段的版本号管理。

版本号的递增原则

  1. 主版本号,当有非兼容性的变更时,递增主版本号;
  2. 次版本号,当以可向后兼容的方式增加了功能时,递增次版本号,以及
  3. 补丁版本号,当有向后兼容的bug修复时,递增补丁版本号。

预发布和构建元数据的附加标签可用作主版本、次版本和补丁版的扩展。

snapshot与release

  • snapshot
    版本代表不稳定、尚处于开发中的版本,即快照版本。
  • release
    版本代表功能趋于稳定、当前更新停止,可以用于发行的版本。
    release 版本一旦发布,就不可改变。

多模块统一修改版本号

在顶级 Module 中添加插件

1
2
3
4
5
6
7
8
9
10
11
12
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
</plugins>
</build>

‘generateBackupPoms’ 配置的作用是在修改 pom 时是否对原文件进行备份。
####为顶级 Module 设置新版本
命令如下:

1
mvn versions:set -DnewVersion=0.0.1-SNATHOST

当然也可以手动修改顶级Module的版本号。
注意:上述命令只会为顶级的 Module 修改版本号。
####更新所有子 Module 的版本
命令如下:

1
mvn versions:update-child-modules

注意: 之前项目的所有 Module 版本号需要统一,否则版本号会更新不全。