项目管理的四个阶段,项目全生命周期管理

前言在上一篇文章(Maven)中,你真的理解了吗?让我帮你开始吧 。)我已经详细解释了Maven配置文件(setting.xml和pom.xml)的标签含义 。在本文中,我将重点解释Maven的生命周期、Maven的版本控制规则以及SNAPSHOT和RELASE版本之间的区别 。

项目管理的四个阶段,项目全生命周期管理

文章插图
Maven的生命周期众所周知,当我们不使用Maven时,我们仍然需要编译、打包和测试项目 。因此,Maven非常方便地集成了一套适用于所有项目的构建生命周期,并将其标准化 。具体步骤包括清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成,其中清理、编译、测试和打包是我们开发人员最常用的步骤 。
Maven有三个独立的生命周期,分别是干净、默认和站点(详情请参考http://c.biancheng.net/view/4899.html) 。清洁生命周期的目的是清理项目;默认生命周期的目的是构建一个项目;站点生命周期的目的是建立一个项目站点 。
以下是我们可能使用的生命周期的详细解释:
Clean:清除目标目录下的类文件和本地warehousejar包validate:检查maven项目的所有依赖项是否都可用编译:项目编译测试:运行项目中的测试用例 。包可以跳过:打包编译的文件是jar包还是war包验证:检查完成的包是否有效,是否符合标准安装:将包发布到本地仓库站点:生成项目的站点文档deploy:将包从本地仓库发布到远程仓库,执行Maven的生命周期 。
【项目管理的四个阶段,项目全生命周期管理】Maven的版本控制规则软件版本号一般由四部分组成,版本号的格式为:主版本、次版本、增量版本、里程碑版本 。
第一部分是主要版本号,第二部分是次要版本号,第三部分是修订版本号,第四部分是里程碑版本(不同阶段的内部测试版本),其中第四部分是可选的 。一般可以形式上没有里程碑版本,也可以以Release结束,如:1.0.0/1.0.0-Release,里程碑版本号分为:
这个版本的Alpha:表示这个阶段软件主要实现软件功能,通常只在软件开发者之间进行交流 。一般来说,这个版本的软件有很多bug,需要不断修改 。Beta:此版本是相对于
α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI 。
  • M: 又叫里程碑版本,表示该版本较之前版本有功能上的重大更新 。
  • RC: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几 。
  • Release: 该版本意味着“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本 。该版本有时也称为标准版 。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R) 。
  • 一般情况下如果要发hotfix我个人喜欢使用RC1...N来说明这是hotfix版本,例如:1.0.0-RC1、1.0.0-RC2,而我们在测试阶段的话打的包都是SNAPSHOT(快照)版 。
    SNAPSHOT和RELASE版本区别上面刚刚好提到了SNAPSHOT版本和RELEASE版本的是有区别的,这里我再详细说一下这两者的区别是什么!
    Snapshot版本是临时快照版本,主要用于开发时解决模块间的依赖更新问题,Snapshot版本可以让你的依赖始终保持最新的(如果不是最新的,删除本地仓库中的jar包重新下一次/或者修改仓库本地缓存策略);Release版本是团队向外发布的稳定版本,这个版本构件所对应的构件文件是固定的 。就算后期有更多的功能要继续开发,完成后也不会改变当前发布版本的内容 。
    还有一点,如果我们需要发布RELEASE版本的构件,RELEASE版构建需要满足以下几个特点:
    1. 通过所有的测试用例
    2. 项目中没有Snapshot版的依赖
    3. 项目中没有Snapshot版的插件
    4. 所有的代码资料都提交到版本控制系统(Git)上,最好对应的版本加上tag标签
    Jar包上传到私服MAVEN会根据上传的版本号中是否存在-SNAPSHOT来判断是否是快照版
    仓库上传:mvn deploy:deploy-file -DgroupId=com.shuwen.mgc -DartifactId=mgc-dispatch-gate-web -Dversion=1.0.0-SNAPSHOT -Dpackaging=war -Dfile=pom.xml -Durl=http://localhost:8081/repository/maven-snapshots/ -DrepositoryId=maven-snapshots
    本地install:mvn clean install -Dmaven.test.skip=true
    最后注意提醒一下,一般情况下MAVEN是一天检查一次更新(daily策略),如果我们要实时的更新依赖的SNAPSHOT版本我们可以这么做,idea及时更新SNAPSHOT包;

    项目管理的四个阶段,项目全生命周期管理

    文章插图
    如果要打包,依赖中存在SNAPSHOT包需要强制更新SNAPSHOT包,可以使用mvn -U进行强制更新检测 。