【Maven实战】之版本管理

本文介绍了Maven版本管理的概念和流程,包括快照版本与发布版本的区别,详细阐述了Maven的版本号定义约定。重点讨论了自动化版本发布,使用Maven Release Plugin进行版本准备、回滚和执行,以及如何自动化创建分支。同时,文章还讲解了GPG签名在Maven中的应用,包括GPG Plugin的配置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  • 版本管理:指项目整体版本的演变过程管理。
  • 版本控制:指借助版本控制工具追踪代码的每一个变更。

何为版本管理

  • 对内项目开发,应该使用快照版本
  • 对外发布时,应该提供非常稳定的版本。
发布版本流程
  • 发布版本满足条件如下
    1. 所有自动化测试应该全部通过
    2. 项目没有配置任何快照版本的依赖
    3. 项目没有配置任何快照版本的插件
    4. 项目所包含的代码已经全部提交到版本控制系统中。
  • 将快照版本更新为发布版本。
  • 执行一次Maven构建,以确保项目状态是健康的
以Subversion为例:
mvn clean install
svn commit pom.xml -m "prepare to release 1.0"
svn copy -m "tag release 1.0"

Maven的版本号定义约定

  • eg:1.3.4-beta-2
  • 【1】代表该版本是第一个重大版本;【3】表示这是基于重大版本的第三个次要版本;【4】表示该次要版本的第四个增量版本;【beta-2】表示该增量的某一个里程碑。约定如下:
  • <主版本>.<次版本>.<增量版本>-<里程碑版本>
  • 主版本:标示项目的重大架构变更
  • 次版本:表示较大范围的功能增加和变化
  • 增量版本:一般标示重大Bug的修复。
  • 里程碑版本:往往指某一个版本的里程碑

主干,标签和分支

  • 主干:项目开发代码的主体,是从项目开始知道当前都处于活动状态。从这里可以获取项目最新的源代码以及几乎所有的变更历史。
  • 分支:从主干的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修复,或者做一些实验性质的开发。如果分支达到预期的目的,通常发生在这里的变更会被合并到主干中。
  • 标签:用来标示主干或者分支的某个点的状态,以代表项目的某个稳定状态,这通常就是版本发布时的状态。

自动化版本发布

  • 使用【Maven Release Plugin】工具来将这一流程自动化,
  • 【Maven Release Plugin】主要有三个目标:
  • release:prepare:准备发布版本
 (1)检查项目是否有未提交的代码
(2)检查项目是否有快照版本依赖
(3)检查用户的输入将快照版升级为发布版
(4)将pom中得scm信息更新为标签地址
(5)基于修改后的pom执行maven构建
(6)提交pom变更
(7)基于用户输入为代码打标签
(8)将代码从发布版升级为新的快照版
(9)提交pom变更
  • release:rollback:回退release:prepare的所有变更 但是不会删除svn标签 需要手工删除
  • release:perform:执行版本发布 牵出
  • release:prepare:签出pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值