添加插件依赖
<project.scm.id>gitlab-my-project</project.scm.id>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
在settings.xml中增加你的GIT账号密码
<server>
<!--与上面的对于-->
<id>gitlab-my-project</id>
<username>这里填写你的gitlab username</username>
<password>这里填写你的gitlab password</password>
</server>
在pom.xml中增加scm配置
让release插件知道去哪里打tag,并checkout tag进行编译、打包和发布。
<scm>
<!--使用https的git地址,release插件需要打分支,打tag,checkout代码-->
<connection>scm:git:https://xxxx/yyyy.git</connection>
<developerConnection>scm:git:https://xxxx/yyyy.git</developerConnection>
<url>scm:git:https://xxxx/yyyy</url>
</scm>
执行发布命令
需要输入你发布的版本号,分支名称及发布后的开发版本号名称等。
# 执行下属命令后,根据提示输入信息
mvn release:clean release:prepare release:perform
# 回滚发布
mvn release:rollback
- prepare命令做了哪些操作:
- 检查项目是否有未提交的代码。
- 检查项目是否有快照版本依赖。
- 根据用户的输入将快照版本升级为发布版。
- 将POM中的SCM信息更新为标签地址。
- 基于修改后的POM执行Maven构建。
- 提交POM变更。
- 基于用户输入为代码打标签。
- 将代码从发布版升级为新的快照版。
- 提交POM变更。
- perform命令做了哪些操作:
- 生成doc文档
- 删除release.properties等发布过程文件
- 迁出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy命令打包并部署构件至仓库。
注意问题
- 项目初始化版本不是SNAPSHOT版本,注意单词不要拼写错误
- open-api生成的类提示doc有问题,阻塞命令执行,在尾部添加-DuseReleaseProfile=false
mvn release:clean release:prepare release:perform -DuseReleaseProfile=false
- 关闭单元测试命令,在后面添加-Darguments=“-DskipTests”, 注意-DskipTests=true,-Dmaven.test.skip=true不会生效
mvn release:clean release:prepare release:perform -DuseReleaseProfile=false -Darguments="-DskipTests"
插件原理参考文档 :https://blog.csdn.net/lgxzzz/article/details/122812975