安装IDEA插件(推荐)

插件名:Maven Project Version

使用也很简单:

用插件跟mvn命令不同的地方在于,使用命令时,如果有子模块的版本跟父pom的版本不一致了,那更改的时候不会更改那个版本不同的子模块,但是用插件的话,全都会一起改。

举个例子:

<parent>
    <artifactId>wlhyos-basic-ability</artifactId>
    <groupId>com.kuaihuoyun</groupId>
    <!-- 父模块是2.4.6版本 -->
    <version>2.4.6-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>wlhyos-basic-ability-interface</artifactId>
<!-- 子模块是2.4.2版本 -->
<version>2.4.2-SNAPSHOT</version>
<packaging>jar</packaging>

这种情况下,用命令行改版本号为2.4.8时,上面的2.4.6会变成2.4.8,但是下面的2.4.2不会变。

使用命令行

简易方法

使用如下命令即可:

mvn versions:set -DprocessAllModules -DgenerateBackupPoms=false -DnewVersion=2.4.6-SNAPSHOT

-DnewVersion后面的版本号换一下就好了,结尾的SNAPSHOT不要漏了!

进阶方法

上面的命令比较长,每次需要改的就是一个版本号,

可以将以下代码添加到您的shell配置文件(例如~/.bashrc或~/.zshrc)中:

function mversion() {
    mvn versions:set -DprocessAllModules -DgenerateBackupPoms=false -DnewVersion=$1-SNAPSHOT
}

然后在终端中运行source ~/.bashrcsource ~/.zshrc以使更改生效。

现在可以使用mversion 2.4.6命令来执行等效于mvn versions:set -DprocessAllModules -DgenerateBackupPoms=false -DnewVersion=2.4.6-SNAPSHOT的操作。

这里的mversion就是上面的方法名,也可以改成自己顺手的。

注意点

如果子模块的版本号与父pom不一致的话,使用上面的命令也不会变成一致的(比如之前有人手动修改版本号,但是改漏了),所以,最好统一都使用命令来变更项目的pom版本,这样不会错。