使用自动化插件release来管理maven项目的版本发布
扫描二维码
随时随地手机看文章
在实际开发过程中,特别是现在推崇的敏捷开发,项目版本的发布非常频繁,有可能是一周就一个版本。对于多模块构建的项目,如何在发布时统一升级项目版本,如果都由人来操作,很容易就漏改某个模块的版本,导致出现问题。本文要介绍的就是使用Maven插件来统一管理这些模块的版本,规范化这一过程。
-
插件: maven-release-plugin
一、 环境与目标
1. 示例环境: 基于Maven构建的多模块项目
-
父项目坐标
<groupId>com.futaogroupId>
<artifactId>starter-fustackartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>starter-fustackname>
-
子模块列表:
<modules>
<module>fustack-wx-mini-programmodule>
<module>fustack-autoconfigurationmodule>
<module>fustack-constsmodule>
<module>demo-testmodule>
<module>fustack-dbmodule>
<module>fustack-foundationmodule>
<module>fustack-tencent-cloud-short-messagemodule>
<module>fustack-webmodule>
<module>fustack-authmodule>
<module>fustack-exceptionsmodule>
<module>fustack-redismodule>
<module>fustack-utilsmodule>
modules>
2. 示例目标: 当前处于开发阶段,项目的版本为: 0.0.1-SNAPSHOT
,即将需要发布该版本的正式版本: 0.0.1
,且在正式版发布之后,下一个开发版本为: 0.0.2-SNAPSHOT
。并同时将构建好的构件发布到maven私服。
二、 插件介绍
-
插件: maven-release-plugin
-
命令: -
mvn release:prepare
: 准备发布版本
-
检查项目是否有未提交的代码,有的话会报错。 -
检查项目是否有快照版本的依赖。 -
提示用户输入将要发布的版本号,并且自动将项目中pom文件中的版本号更新为用户输入的版本号。 -
提示用户输入一个tagName。 -
基于修改后的pom执行构建。 -
提交pom变更到VCS。 -
提示用户输入下一个开发版的版本号,并且自动将项目中pom文件中的版本号更新为用户输入的版本号。 -
提交pom变更到VCS。
mvn release:rollback
: 回滚prepare阶段的操作,将pom回退至之前的状态并提交,但是不会删除prepare生成的tag标签。
mvn release:perform
: 执行版本发布,执行
mvn deploy
命令打包并部署构件到远程仓库。
三、 演示过程
1. 添加release插件支持
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-release-pluginartifactId>
<configuration>
<autoVersionSubmodules>trueautoVersionSubmodules>
<tagNameFormat>release-by-maven-${version}tagNameFormat>
configuration>
plugin>
-
如果需要将构建好的构件发布到自己的maven私服,需要进行以下配置: -
在 ~/.m2/settings.xml
中添加maven私服的用户名和密码 -
在项目的pom.xml文件中配置repository
<distributionManagement>
<repository>
<id>对应settings中设置的idid>
<url>需要上传到的maven私服地址url>
repository>
distributionManagement>
2. 在pom.xml中设置SCM地址
<scm>
<developerConnection>scm:git:https://github.com/FutaoSmile/starter-fustackdeveloperConnection>
<tag>v-release-0.0.1tag>
scm>
3. 执行命令
-
mvn release:prepare
-
mvn relase:perform
-
prepare准备过程截图:
-
执行版本发布截图:
-
检查maven私服,构件是否上传成功
-
代码已自动更新至下一个开发版
# 源代码
-
https://gitee.com/FutaoSmile/starter-fustack -
https://github.com/FutaoSmile/starter-fustack
特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:
长按订阅更多精彩▼
如有收获,点个在看,诚挚感谢
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!