前言
在上篇文章中(项目管理利器(Maven)你真的了解吗?让我来帮你入门学习)我已经详细的对Maven配置文件(setting.xml和pom.xml)标签含义做了说明,这篇文章我将着重将讲解Maven的生命周期、Maven的版本控制规则以及SNAPSHOT和RELASE版本区别这三块。
Maven的生命周期
众所周知,在我们没有使用Maven的时候我们其实仍然需要对项目进行项目进行编译、打包、测试等等。所以Maven非常方便地整合一套适合于所有项目的构建生命周期,并将它们统一规范。具体步骤包括清理、初始化、编译、测试、打包、集成测试、验证、部署和生成站点,其中清理、编译、测试、打包是我们开发人员最经常使用的步骤。
Maven拥有三套独立的生命周期,它们分别是 clean、default 和 site(详细可以参考:
http://c.biancheng.net/view/4899.html)。clean 生命周期的目的是清理项目;default 生命周期的目的是构建项目;site 生命周期的目的是建立项目站点。
这里给大家详细解释一下我们可能用得到的生命周期:
执行Maven的生命周期一般可以使用mvn命令或者IDE中的工具。
Maven的版本控制规则
一般情况下软件版本 有四部分组成,版本 格式为:<主版本>.<次版本>.<增量版本>-<里程碑版本>。
其中第四部分为可选部分一般情况下正式可以直接不带里程碑版本或者用Release结尾,例如:1.0.0/1.0.0-Release,而里程碑版本 又分为:
一般情况下如果要发hotfix我个人喜欢使用RC1…N来说明这是hotfix版本,例如:1.0.0-RC1、1.0.0-RC2,而我们在测试阶段的话打的包都是SNAPSHOT(快照)版。
SNAPSHOT和RELASE版本区别
上面刚刚好提到了SNAPSHOT版本和RELEASE版本的是有区别的,这里我再详细说一下这两者的区别是什么!
Snapshot版本是临时快照版本,主要用于开发时解决模块间的依赖更新问题,Snapshot版本可以让你的依赖始终保持最新的(如果不是最新的,删除本地仓库中的jar包重新下一次/或者修改仓库本地缓存策略);Release版本是团队向外发布的稳定版本,这个版本构件所对应的构件文件是固定的。就算后期有更多的功能要继续开发,完成后也不会改变当前发布版本的内容。
还有一点,如果我们需要发布RELEASE版本的构件,RELEASE版构建需要满足以下几个特点:
- 通过所有的测试用例
- 项目中没有Snapshot版的依赖
- 项目中没有Snapshot版的插件
- 所有的代码资料都提交到版本控制系统(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进行强制更新检测。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!