maven 发部release版本

maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。
deploy发布
传统的web项目一般会有一个api模块,用于发布对外的RPC接口,如Dubbo。这个时候一般通过发布jar包,提供maven坐标的方式,让别人引入你的依赖。这个时候可以直接通过maven deploy命令直接发布快照版本到私服。
像IDEA这种集成环境,可以通过简单的点击直接发布。
同时需要注意,maven基于 POM文件中的 version来确定你将要发布的 SNAPSHOT还是 release。所以不能瞎命名,容易把不稳定的 jar包发布到 release仓库。
Release命令发布
比较复杂的是通过 mvn release:prepare和 mvn release:perform来发布,这种发布会自动升级版本,不用手动维护POM文件中的version版本。
流程:

  1. 发版之前需要保证本地文件提交,否则会导致发版失败 =>发版前要commit
  2. 发版之前需要保证本地成功执行 mvn checkstyle:checkstyle,否则会导致发版失败(可选)
  3. 发版之前需要保证mvn仓库无重复版本,git上无重复的Tag,否则会导致发版失败
    要清楚本地tag和远程tag
  4. 发布之前需要保证本地成功执行mvn clean install -Dmaven.test.skip=true,否则会导致发版失败,而且有效性只有一次,修改代码后需要重新执行该命令。
  5. 发版命令:
  • mvn release:prepare -Darguments="-DskipTests" 预准备
  • mvn release:perform -Darguments="-DskipTests" 发布
  • mvn release:rollback -Darguments="-DskipTests" 回滚命令
    关于上面三条命令的更详细解释:
    release:prepare这条命令主要是做打包前的准备:
  1. 输入对应的release需要打包的版本等信息,如果不输入有默认的内容
  2. 将需要记录和准备的内容缓存到pom.xml目录下的release.properties文件中
  3. 在本地和远程库的GIT中打上对应版本的tag
    在准备过程中还会run 单元测试等phase,如果没有异常的话可以继续最后一步。如果git还没有commit或单元测试失败会导致prepare失败,这时候你就需要到下面一个命令了。
    release:rollback
    如果在准备阶段发生错误,或者需要修改某些地方的话。就需要到这个命令了,这个命令执行以后会做以下这些事
  4. 删除线上git库tag,但是本地库tag没有被删除,需要手动使用git tag -d XXX进行删除。如果不将本地库中的tag删除将会导致prepare失败。
  5. 删除之前缓存在pom.xml统一目录下的配置
    release:perform
    如果确认无误了以后,就可以执行perform命令了。这个命令干了以下这些事:
  6. 验证代码合法性
  7. 将你之前的1.0-SNAPSHOT改为1.1-SNAPSHOT
  8. 将1.0版本deploy至scm配置的nexus release库中
  9. jar打包上传至nexus库
    恭喜,你已经把你的1.0-SNAPSHOT成功的打包成1.0的release版本了。同时你会发现你的pom.xml文件会自动的变成1.1-SNAPSHOT版本。虽然这一系列操作都可以通过手动完成。但是有这个工具的存在,免去了很多步骤。
    QA
    实际发包过程中,会遇到一些报错,这个时候通过执行 rollback外加删除远程和本地的 tag基本可以解决问题。
    参考文献
  • Maven Release发布指南---Git版
  • Maven deploy部署jar包到远程私仓
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巡山小妖008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值