maven-release-plugin调研

maven release plugin支持自动发布

调研结果:

Maven Release Plugin 插件简介:

该插件主要有三个目标:release: prepare,  release: rollback,  release: perform 

release:prepare 准备版本发布,依次执行下列操作:

1. 检查项目是否有未提交的代码

2. 检查项目是否有快照版本依赖

3. 根据用户的输入将快照版本升级为发布版

4. 将POM中的SCM信息更新为标签地址

5. 基于修改后的POM执行maven构建

6. 提交POM变更

7. 基于用户输入为代码打标签

8. 将代码从发布版升级为新的快照版

9.提交POM变更

release: rollback 回退release:prepare执行的操作

回退release: prepare所执行的操作。将POM回退至release:prepare之前的状态,并提交。

该步骤不会删除release:prepare生成的标签,需要用户手动删除。

release: perform 执行版本发布

签出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy命令打包并部署构件至仓库。

另外,该插件的branch目标能帮助我们创建分支,依次执行如下操作:

1. 检查本地有无未提交的代码

2. 将分支更改POM的版本,如:1.0.0-SNAPSHOT改成1.0.1-SNAPSHOT

3. 将POM中的SCM信息更新为分支地址

4. 提交以上更改

5. 将主干代码复制到分支中

6. 修改本地代码使其回退到分支前的版本(用户可以指定新的版本)

7. 提交本地更改

相关细节如下:

1.当执行release:prepare时,将会以交互形式提示用户,要发布的版本、tag的名称、下一个迭代的版本等,用户可以根据需要进行更改。

2.当执行release: perform操作时,将会把release: prepare操作所准备的版本真正发布到仓库中。

3.上述两个步骤既可以在master上进行,也可以在其他分支进行,也就是发布时可以选择在master上,也可以在其他分支上,每发布一次将会创建一个tag。

4.当执行release:prepare操作时,在提示用户下一个迭代版本时,默认会将小版本加1,如果用户希望保持原来版本不变,可以输入原来版本,也可以输入自己希望的版本。

5.当执行release:branch时,用户可以创建branch,创建branch时,版本号保持和本地工作副本一致,用户可以使用release:update-versions更新版本,但该更新操作只能将版本更成带-SNAPSHOT的快照版,不支持更改成不带-SNAPSHOT的发布版。

6.如果项目里所有的版本均不带-SNAPSHOT,则执行release:prepare时将报错:Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project test: You don't have a SNAPSHOT project in the reactor projects list.

猜你喜欢

转载自blog.csdn.net/chizizhixin/article/details/80999026