是五月呀!

maven版本控制插件

versions-maven-plugin插件可以用来方便的管理父子模块的版本。

参考Versions Maven Plugin Doc Versions Maven Plugin

1.背景

项目中经常会出现父子项目:
父pom

1
2
3
4
5
6
7
8
9
10
<groupId>group.parent</groupId>
<artifactId>artifact.parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>artifact.child1</module>
<module>artifact.child2</module>
...
</modules>

然后可能会有很多子module,
子模块1的pom

1
2
3
4
5
6
7
<parent>
<groupId>group.parent</groupId>
<artifactId>artifact.parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>artifact.child1</artifactId>

子模块2的pom

1
2
3
4
5
6
7
<parent>
<groupId>group.parent</groupId>
<artifactId>artifact.parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>artifact.child2</artifactId>

当项目版本升级时,需要修改父pom和所有子pom的版本,很繁琐。

versions-maven-plugin这个插件可以帮我们完成版本控制。

2.引入插件

1
2
3
4
5
6
7
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>

3.升级版本

使用versions:set命令,修改项目版本:

1
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT

或者在IDEA中双击,然后在运行界面输入新版本号。
此时会在项目中生成多个pom.xml.versionBackup文件。这些文件是用来回滚的。

4.提交升级

如果升级版本没有问题,使用versions:commit命令确认,会删除生成的多个pom.xml.versionBackup文件。
注意,执行这个命令后,就不能使用下面的回滚命令回滚到最初的版本了。

5.回滚版本

使用versions:revert命令,回滚到备份中的版本:

1
mvn versions:revert

或者在IDEA中双击即可,之前生成的pom.xml.versionBackup文件也会被删掉。