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命令打包并部署构建至仓库。

    

maven的版本管理笔记的更多相关文章

  1. Maven基础学习笔记

    Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...

  2. Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】

    什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用 ...

  3. 《Maven实战》笔记-10-灵活的构建

    一.灵活构建的意义 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建.例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就 ...

  4. 《Maven实战》笔记-8-构建部署Web项目

      一.Web项目结构 1.显式指定Web项目打包方式为war:   2.默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/reso ...

  5. 《Maven实战》笔记-9-版本管理

    一.理想的发布版本,在项目构建时需要满足以下条件: 1.所有自动化测试应当全部通过: 2.项目没有配置任何快照版本的依赖: 3.项目没有任何快照版本的插件: 4.项目所包含的代码已经全部提交到版本控制 ...

  6. 《Maven实战》笔记-7-持续集成

    一.持续集成的步骤: 1.持续编译 2.持续数据库集成 3.持续测试 4.持续审查 5.持续部署 6.持续反馈   二.持续集成工具——Hudson 1.安装Hudson 2.准备Subversion ...

  7. 《Maven实战》笔记-6-maven测试

    一.基于Maven的测试 1.maven-surefire-plugin插件 该插件的test目标会自动执行测试源码路径(默认src/test/java)下符合以下命名模式的测试类: 以Test开头或 ...

  8. 《Maven实战》笔记-4-生命周期和插件

    除了坐标.依赖以及仓库外,Maven另外两个核心概念是生命周期和插件. 一.生命周期 Maven的生命周期是抽象的,其本身不做任务实际的工作,实际的任务(如编译源代码)都交由插件来完成. 三套生命周期 ...

  9. 《Maven实战》笔记-5-pom聚合和继承

    一.聚合 假设有两个模块:account-email和account-persist: 能够使用一条命令就能构建上述两个模块,需要创建一个额外的模块:account-aggregator: 通过acc ...

随机推荐

  1. jQuery实现文字放大效果

    实现效果:当鼠标移动到超链接的那一瞬间就出现提示. <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  2. Linux下编译java并生成jar包

    下面是WordCount.java类 package com.ll; import java.io.IOException; import java.util.Iterator; import jav ...

  3. 【转】libvirt kvm 虚拟机上网 – Bridge桥接

    libvirt kvm 虚拟机上网 – Bridge桥接 2013 年 7 月 3 日 / 东东东 / 暂无评论 目录 [hide] 1 Bridge桥接原理 2 在host机器配置桥接网络 2.1  ...

  4. CRT:C运行库简介

    1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.   2)C 语言是所谓的"小内核&q ...

  5. 从SVN导出指定版本号之间修改的文件

    当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他 没有修改过的文件就没有必要上载到服务器.但一个稍微上规模的网 ...

  6. java中用中国网建提供的SMS短信平台发送短信

    接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...

  7. PHP写一段代码,确保多个进程同时写入一个文件成功

    这个需求是在软件设计过程常见的加锁.学计算机的同学都应该知道,这个是在<计算机操作系统>课程上有这个知识点.主要要考虑的是进程的同步,也就是进程对资源的互斥访问.OK,用程序说话吧! &l ...

  8. [hibernate]基本值类型映射之日期类型

    hibernate基本值类型映射中日期类型支持date,time,timestamp这三个选项,其中 date:对应数据库中的date类型,表示只显示日期 time:对应数据库中的time类型,表示只 ...

  9. BEvent_客制化Event Agent通道(案例)(待整理)

    2014-09-09 Created By BaoXinjian

  10. 回调--一个经典例子让你彻彻底底理解java回调机制

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 以前不理解什么叫回调 ...