前言在上一篇文章(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 。
SNAPSHOT和RELASE版本区别上面刚刚好提到了SNAPSHOT版本和RELEASE版本的是有区别的,这里我再详细说一下这两者的区别是什么!
Snapshot版本是临时快照版本,主要用于开发时解决模块间的依赖更新问题,Snapshot版本可以让你的依赖始终保持最新的(如果不是最新的,删除本地仓库中的jar包重新下一次/或者修改仓库本地缓存策略);Release版本是团队向外发布的稳定版本,这个版本构件所对应的构件文件是固定的 。就算后期有更多的功能要继续开发,完成后也不会改变当前发布版本的内容 。
还有一点,如果我们需要发布RELEASE版本的构件,RELEASE版构建需要满足以下几个特点:
- 通过所有的测试用例
- 项目中没有Snapshot版的依赖
- 项目中没有Snapshot版的插件
- 所有的代码资料都提交到版本控制系统(Git)上,最好对应的版本加上tag标签
仓库上传: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进行强制更新检测 。
- 芯片|美国芯片价格“雪崩”,对华制裁自食恶果!更严峻的考验在后面
- 智能手表|大家买智能手表的时候都是怎么选的呢?
- 花卉枯萎发焉的原因以及应对方法
- 170开头的手机号属于哪个运营商
- 蓝牙4.1和5.0的区别是什么
- 揭秘新片上线前的关键一步,有人为你看清雨滴操碎了心
- 洗衣机的成本高吗,生产一台洗衣机的成本是多少
- 成为创业者的基本素质 创业者的素质包括
- 找工程项目的软件 免费工程项目信息网站
- 红魔8Pro首销火爆,取得6个第一的成绩