Maven通过BOM 版本控制

  • Post author:
  • Post category:其他



前言

:之前我们做过项目的版本控制,但是因为每个服务的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配置的版本号(如下图)

在这里插入图片描述



版权声明:本文为insistbo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。