温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

maven的版本如何管理

发布时间:2021-12-14 14:38:19 来源:亿速云 阅读:217 作者:iii 栏目:大数据

这篇文章主要讲解了“maven的版本如何管理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“maven的版本如何管理”吧!

maven私有库

公司内部搭建自己的私有仓库是所有版本管理的基础,没有这个一切都免谈。

没有Nexus私服,我们所需的所有构件都需要通过maven的中央仓库或者第三方的Maven仓库下载到本地,这会带来很多问题:

  • 可能因为网络问题无法下载(比如内网环境开发)

  • 团队中的所有人都重复下载造成浪费

  • 团队中的不同的人开发的模块不方便共享给其他成员

目前主流的方案都是基于NEXUS搭建的。架构如下:

maven的版本如何管理  

我不打算写安装过程了,网上比较多大家可以自行查找。

安装完成之后,界面是这样的(不同的版本界面可能会有差异):

maven的版本如何管理  

  • maven-central:这里存放从中央仓库或者第三方的下载的jar

  • maven-releases:团队内部发布版本的jar

  • maven-snapshots:团队内部开发版本的jar(后面还会细讲)

  • maven-public:把上面三个仓库组合在一起对外提供服务(主要是在settings.xml中使用)

 

maven snapshot

有了私钥库并不是万事大吉了。试想下这种场景,甲乙两个人各自开发一个模块,甲的模块需要依赖乙的模块,乙开发完一个版本后(比如1.1.1)就mvn:deploy到私有库,甲直接在自己的POM中引用即可。

<dependency>
    <groupId>com.yi.develop</groupId>
    <artifactId>develop_by_yi</artifactId>
    <version>1.1.1</version>
</dependency>
 

过一段时间,乙发现代码中有个bug,于是赶紧修复然后把版本变为1.1.2发布到私有库上了。问题就来了,首先乙如果忘记告诉甲这个事情,甲就会一直引用一个低版本的乙模块,这可能会对整个应用带来致命的问题。其次即使乙及时告诉了甲这个消息,甲也要修改自己的pom文件进行更新。后面乙不断的更新版本,甲就要不断的更新POM文件。很麻烦吧?!

maven早就帮你想好了解决方案了,它引入了快照版本的概念。乙把自己开发的模块版本命名为1.1-snapshot,甲这样引用到自己的工程中:

<dependency>
    <groupId>com.yi.develop</groupId>
    <artifactId>develop_by_yi</artifactId>
    <version>1.1-snapshot</version>
</dependency>
 

乙每次更新提交到私有库后,都会将SNAPSHOT改成一个当前时间的时间戳命名的jar,Maven在处理SNAPSHOT依赖时,会根据时间戳下载最新的jar。默认情况下,快照的版本会每天自动更新一次。如果需要实时引用到最新的依赖包,可以使用-U参数强制更新。

mvn clean install -U      

maven 版本编号规则

Maven版本号采用的是通用的三级规则:

[主版本号].[副版本号].[修复版本号]

  • 主版本号一般来说代表了项目的重大的架构变更

  • 副版本号一般指增加或者减少功能

  • 修复版本号一般代表bug fix

感谢各位的阅读,以上就是“maven的版本如何管理”的内容了,经过本文的学习后,相信大家对maven的版本如何管理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI