SpringCloud Alibaba 微服务实战四 - 版本管理
导读:本篇作为SpringCloud Alibaba微服务实战系列的第四篇,我们对之前的微服务框架进行优化,通过Maven bom机制管理所有组件的版本。
BOM 简介
BOM(Bill of Materials)是由Maven提供的功能,它通过定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号。BOM的维护方负责版本升级,并保证BOM中定义的jar包版本之间的兼容性。
为什么要使用BOM
使用BOM除了可以方便使用者在声明依赖的客户端时不需要指定版本号外,最主要的原因是可以解决依赖冲突,防止你项目中出现NoSuchMethodError
, ClassNotFoundException
等不可控的异常。
项目改造
在SpringCloud项目体系中我们约定跟SpringCloud版本相关的用主pom文件进行版本控制,对于第三方组件或者公共模块的版本使用自定义的bom进行控制,接下来我们一步步对原有框架进行改造。
建立cloud-bom模块
此模块很简单,只有一个pom文件,定义项目模块中所需要依赖的第三方组件和公共模块,完整的pom文件如下:
注意,这个模块不要再定义依赖了,否则在主pom文件中引入bom后项目启动会报循环依赖的异常(死循环),具体错误如下所示:
在主pom文件中引入bom模块的pom
此段内容需要放在dependencyManagement中第一个位置
去掉其他模块中引用组件的
<version>
定义,如:
改造完成后整体结构如下
改造完成后对原项目进行测试,保证不影响原有功能
建议在项目初期就引入bom进行管理,后期改造会相对麻烦。
至此我们已经完成了项目的统一版本管理,那么本期的“SpringCloud Alibaba微服务实战四 - 版本管理”篇也就该结束啦,咱们下期有缘再见!
看完三件事❤️
如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
关注公众号 『 java烂猪皮 』,不定期分享原创知识。
同时可以期待后续文章ing🚀
作者:jianzh5
地址:http://javadaily.cn/articles/2019/12/07/1575696391771.html
评论