三个步骤使用 maven release 管理 Java 项目的版本号

在多模块的 maven 项目中,模块的版本号升级,如果使用手工方式管理,很花时间,容易出错。 各个模块直接有依赖关系,更新版本号容易改漏。正确的做法是使用 mvn release 插件

这个插件不需要安装。 只需要在工程的 pom.xml 中设置项目的代码库地址即可。

三个步骤即可使用 mvn release 轻松管理版本的升级(版本号增加),发布(版本从 Snapshot 版本发布到  Release 版本)。

Java/Maven 项目版本号维护的规则

开发分支始终都是 SNAPSHOT 的版本; release 版本发布在 tag 上面;每次发布时,使用 mvn release:prepare 命令会推送 release 版本的 tag 到代码仓库,同时升级开发分支的 SNAPSHOT 版本,产生2次 commit, 并且自动 push 到代码仓库。

这个规则是 mvn release 插件假设开发者的开发模式,也是 maven 建议的开发模式。

项目的版本号按照逐渐增加的方式升级,每一个 -SNAPSHOT的版本都是开发分支的版本号,每一个不带 -SNAPSHOT 的都是经过充分测试的正式版本, 开发分支上只有 SNAPSHOT 版本。 正式版本打在代码库的 tags 上面。 随着时间的演进,项目版本号的示例如下(当然不需要是连续的版本号):

1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..

步骤一: 在项目根目录的 pom.xml 中增加代码仓库的位置配置。

    <scm> 
      <developerConnection>scm:git:https://github.com/xxx/xxx</developerConnection>
    </scm>

mvn release 命令运行的时候, 会自动把 release tag 推送到 代码仓库,所以需要 scm 节点的配置。

步骤二:执行 mvn release:prepare 发布 release 版本, 升级到下一个 SNAPSHOT 版本。

mvn release:prepare

mvn release:prepare  命令,会做两个事情:

1).去掉开发的版本号 xxx-SNAPSHOT 中的临时版本标记 -SNAPSHOT,作为 release 版本号,自动打 tag 提交到代码仓库。

2).升级到下一个 SNAPSHOT 版本,产生一次 commit,并提交到 代码仓库。

步骤三:执行 maven 库版本发布,或者清理动作

mvn release:perform 
mvn release:clean

如果有权限发布到 maven 仓库, mvn release:perform 会执行成功,将 mvn 打的包发布到远程mvn 仓库。 如果没有权限,则执行 release:clean 清理产生的备份文件即可。

经过这三个简单的步骤,就可以快速使用 mvn release 来管理多模块项目中的版本号。大幅提升版本维护的效率,这是模块版本管理的正确方式。

另外,可以批量更新版本号:

mvn --batch-mode release:update-versions -DdevelopmentVersion=1.2.0-SNAPSHOT

参考官方文档: Maven Release plugin – Update POM Versionsy

也可以 -B 指定使用默认的配置:

mvn -B release:prepare 

或者合并执行 prepare 和 perform 两个步骤:

mvn -B release:prepare release:perform

猜你喜欢

转载自blog.csdn.net/davidullua/article/details/127214124