maven的版本管理笔记
1. 版本管理
(1) 快照版本对应了项目的开发过程,往往对应了很长的时间;发布版本对应了项目的发布,因此仅仅代表某个时刻项目的状态。
(2) 理想的发布版本应当对应项目某个时刻比较稳定的状态,包括源代码的状态以及构建的状态,因此这个时候的项目的构建应当满足以下几个条件:
- 所有自动化测试应当全部通过;
- 项目没有配置任何快照版本的依赖;
- 项目没有配置任何快照版本的插件;
- 项目所包含的代码已经全部提交到版本控制系统中。
(3) 项目的快照版本更新至发布版本之后,应当再执行一次Maven构建并将源代码打上标签,以便将此版本的项目状态记录在版本控制系统中。
2. Maven的版本号定义约定
(1) 看一个实例:
1.3.4-beta-2
这往往表示该项目或产品的第一个重大版本的第三个次要版本的第四次增量版本的beta-2里程碑。
(2) Maven的版本号定义约定: <主版本>.<次版本>.<增量版本>-<里程碑版本>
- 主版本:表示了项目的重大架构变更。例如Maven3和Maven2相去甚远;
- 次版本:表示较大范围的功能的增加和变化,及BUG的修复;
- 增量版本:一般表示重大BUG的修复,例如项目发布了1.5.0版本之后,发现了一个影响功能的重大bug,则应该快速发布一个修复了BUG的1.5.1版本。
- 里程碑版本:往往指一个版本的里程碑,这样的版本与正式的发布版本相比,往往表示不是非常的稳定,还需要很多测试。
(3) 不是每个版本号都需要这四个部分,一般来说,主版本和次版本都会声明,但增量版本和里程碑就不一定。
3. 自动化版本发布
下面介绍使用Maven Release Plugin发布项目版本。
(1) Maven Release Plugin主要有三个目标:
- release:prepare 主板版本发布,它依次执行下列操作
- 检查项目是否有未提交的代码
- 检查项目是否有快照版本依赖
- 根据用户的输入将快照版本升级为发布版
- 将POM中的SCM信息更新为标签地址
- 基于修改后的POM执行Maven构建
- 提交POM变更
- 基于用户输入为代码打标签
- 将代码从发布版升级为新的快照版
- 提交POM变更
- release:roolback 回退release:prepare所执行的操作。将POM回退到release:prepare之前的状态并提交。需要注意,该步骤不会上床release:prepare生成的标签,需要手动删除。
- release:perform 执行版本发布。签出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy命令打包并部署构建至仓库。
- release:prepare 主板版本发布,它依次执行下列操作
maven的版本管理笔记的更多相关文章
- Maven基础学习笔记
Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...
- Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】
什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用 ...
- 《Maven实战》笔记-10-灵活的构建
一.灵活构建的意义 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建.例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就 ...
- 《Maven实战》笔记-8-构建部署Web项目
一.Web项目结构 1.显式指定Web项目打包方式为war: 2.默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/reso ...
- 《Maven实战》笔记-9-版本管理
一.理想的发布版本,在项目构建时需要满足以下条件: 1.所有自动化测试应当全部通过: 2.项目没有配置任何快照版本的依赖: 3.项目没有任何快照版本的插件: 4.项目所包含的代码已经全部提交到版本控制 ...
- 《Maven实战》笔记-7-持续集成
一.持续集成的步骤: 1.持续编译 2.持续数据库集成 3.持续测试 4.持续审查 5.持续部署 6.持续反馈 二.持续集成工具——Hudson 1.安装Hudson 2.准备Subversion ...
- 《Maven实战》笔记-6-maven测试
一.基于Maven的测试 1.maven-surefire-plugin插件 该插件的test目标会自动执行测试源码路径(默认src/test/java)下符合以下命名模式的测试类: 以Test开头或 ...
- 《Maven实战》笔记-4-生命周期和插件
除了坐标.依赖以及仓库外,Maven另外两个核心概念是生命周期和插件. 一.生命周期 Maven的生命周期是抽象的,其本身不做任务实际的工作,实际的任务(如编译源代码)都交由插件来完成. 三套生命周期 ...
- 《Maven实战》笔记-5-pom聚合和继承
一.聚合 假设有两个模块:account-email和account-persist: 能够使用一条命令就能构建上述两个模块,需要创建一个额外的模块:account-aggregator: 通过acc ...
随机推荐
- <<编写可维护的JavaScript>>之避免使用全局变量
一.避免全局变量的理由 js中避免创建全局变量一是避免命名冲突,二是避免因为创建全局变量让代码变得脆弱,三是创建全局变量会让代码难以测试. 二.避免创建全局变量的几种方法 //避免全局变量 避免命名冲 ...
- 剑指offer系列42---二叉树深度
[题目]输入一棵二叉树,求该树的深度. * 从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. package com.exe9.offer; /** * [题 ...
- [linux basic]--线程
/************************************************************************* > File Name: thread1.c ...
- 黄聪:主机宝安装wordpress注意事项
1.web环境安装PHP使用5.4.21-nts-03版本 2.web环境安装Mysql使用5.5.45版本 3.创建好站点后,给站点的public_html目录添加IIS_xxx用户最高权限,添加N ...
- SpringMVC参数类型转化错误调试方法
- HDU 4539 郑厂长系列故事――排兵布阵(曼哈顿距离)
这虽然是中文题,然而没看懂,不懂的地方,就是在曼哈顿距离这块,网上搜索了一下,写了个程序,是测试曼哈顿距离的. 曼哈顿距离:两点(x1,y1)(x2,y2)的曼哈顿距离为|x1-x2|+|y1-y2| ...
- NeHe OpenGL教程 第十八课:二次几何体
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 用imageROI来增加某范围的像素
//用imageROI来增加某范围的像素 //作者:sandy //时间:2015-10-5 #include <cv.h> #include <highgui.h> int ...
- 键盘--android 隐藏系统键盘
. -----------------------------------------已验证----------------------------------- public static void ...
- JAVA关系运算符
常用的关系运算符: 编号 关系运算符 说明 1 > 大于 2 < 小于 3 == 等于 4 != 不等于 5 >= 大于或等于 6 <= 小于或等于 用关系运算符判断后返回的值 ...