前言
:之前我们做过项目的版本控制,但是因为每个服务的pom文件都要修改自己项目打包出来的版本号和自己需要引入的其他Api的版本号比较繁琐(如下图),不适用于微服务调用太多,每个人负责多个模块,且版本多快节奏的开发,但是版本控制还是需要去做起来,本次基与Bom管理项目的版本,简化版本控制时相互依赖的版本号配置;
预期
:通过一个地方统一配置,能够实现根据配置的地方打出配置的版本的Jar包,并依赖配置的的版本的Jar包,一个配置解决打包和依赖版本的问题;
结果
:通过bom管理的方式仅能够控制服务依赖的版本,并不能够控制打出什么版本的Jar包;需要在父工程中配置指定每个服务的版本和bom的版本,管理每个工程的版本号;
一共需要管理两个pom的版本清单,一是父pom中的版本清单,决定每个服务打什么版本的jar;另一个是Bom中的pom版本清单,决定打出来的jar依赖其他服务的版本。
什么是bom
BOM本⾝并不是⼀种特殊的⽂件格式,⽽是⼀个普通的POM⽂件,只是在这个POM中, 我们罗列的是⼀个⼯程的所有依赖和其对应的版本。该⽂件⼀般被其它⼯程使⽤,当其它 ⼯程引⽤BOM中罗列的jar包时,不⽤显⽰指定具体的版本,会⾃动使⽤BOM对应的jar版 ,如图所示:
注
:maven项目子工程引入的其他微服务如果不指定引入的版本,那就会沿着父类一直往上追溯版本号,子工程会引用父类的版本号,parent只能指定一个BOM。如果我还想引入一个或多个BOM,这个时候,就可以使用配置,即 不光可以用来定义BOM本身的依赖清单,也可以用作BOM的引入,通过Bom中pom文件的版本控制每个服务依赖的版本;
但是每个微服务需要打什么版本的包,还是要在当前服务的父pom中统一管理;
子工程需要打的Jar版本,读取父pom配置的版本号(如下图)