Maven高级——继承与聚合——版本锁定

news/2024/10/31 3:22:21/

在前面的文章已经实现了Maven的继承,初次之外,还可以在父工程当中统一管理依赖的版本。

场景介绍

有一些依赖不是各个模块共有的,则需要到那些子模块当中单独配置了,这时需要到各个模块单独配置了,比如下图有一个模块都用到jwt依赖,那么就统一都用同一个版本的jwt.

但是如果要修改版本为0.9.2时就要每个子模块都要看一次,看看有没有jwt这个依赖,有就要改版本。

使用了<dependencyMangemanet>只是统一管理这个依赖的版本,并不会将这个标签里面的依赖传到子工程那里。 还是需要到部分的子工程那里手动引入jwt的依赖,只不过已经不需要指定依赖的版本。

 

 案例演示:

 将子工程里面那些非共有的依赖都复制粘贴到父工程的dependencyMangemanet标签里面,然后把子工程里面的版本号都删除即可。

在父工程中引入如下依赖,有jwt的,有web开发的的,有阿里云OSS的。

   <dependencyManagement><dependencies><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency><!--阿里云OSS的依赖--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><!-- no more than 2.3.3--><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version></dependency><!--web开发的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.5</version></dependency></dependencies></dependencyManagement>

然后在子工程当中再次引入jjwt的依赖时不会再提示选择版本号了。

修改依赖版本号

如下图所示现在有两个子工程都有了jjwt的依赖,然后我们将父工程中的版本改成0.9.0之后,子工程里面的版本号也会跟着变成0.9.0. 

 另外有一个问题,如果将来用到的依赖较多,父工程里面将会配置大量依赖。

版本号也是零散的分布各个坐标当中,不便于集中管理。

解决方案

为了解决这个问题可以用到Maven的自定义属性的功能,虽然但是,这个也只有在一些大型项目中,有几十上百个依赖时才能体现出它的便利性,一般项目中都用不到。所以这里不再做演示。

在tlias-parent的父工程的父工程当中我们可以看见如下的依赖的版本管理,里面早已的指定了一堆依赖。 

小结

面试题目会考到


http://www.ppmy.cn/news/203908.html

相关文章

【C++11】可变参数模板

文章目录 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板&#xff0c;相比C98/03&#xff0c;类模版和函数模版中只能含固定数量的模版参数&#xff0c;可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象&#xff0c;使用起来需要一定…

ADS8688驱动(FPGA)

ADS8688 为 16 位采样芯片&#xff0c;最大采样范围 − 10.24 V ∼ 10.24 V -10.24V\sim10.24V −10.24V∼10.24V &#xff0c;最大采样率 500 k S P S 500 kSPS 500kSPS&#xff0c;8 采样通道&#xff0c;每个通道都可支持双极性 10.24 V \pm 10.24V 10.24V、 5.12 V \…

认识微型计算机系统结构实践报告,认识微机的主要部件实训报告.doc

认识微机的主要部件实训报告.doc 1 实训 2 认识微机的主要部件实训报告 实训内容 1&#xff0e;认识CPU、主板、内存条&#xff0c;了解主要技术指标。 2&#xff0e;认识硬盘、软盘等存储设备&#xff0c;了解主要技术指标。 3&#xff0e;认识键盘、鼠标、显卡、显示器等输入…

.NET Framework 中的字符编码

字符是可以通过多种不同方式表示的抽象实体。 字符编码是一个支持字符集中的每个字符进行配对值表示该字符的系统。 例如&#xff0c;摩尔斯电码是一种为罗马字母表中的每个字符与点的模式和短划线适用于在电报线路中传输的字符编码。 计算机的字符编码对一个支持字符集中的每个…

初级hifi

要听好听的音乐真是一个环节差了都不行啊。我的耳机是hd650和hd800&#xff0c;听了3个版本的神秘园的Dawn Of A New Century 新世纪的曙光&#xff0c;明显能感觉出不同版本的好坏&#xff0c;所以同样的音乐&#xff0c;cd不同差异可能很大。另外&#xff0c;用foobar和adobe…

CPU发展历程!

机顶盒核心部件 &#xff0d;&#xff0d;&#xff0d;CPU发展历程&#xff01; 在盒子界打滚以来&#xff0c;只是看到、听到各厂家CPU不断升级换代&#xff0c;宣称这个盒子能整4K、 能播超高清和硬解H.265什么的。实际上…却是无力应证。网络上&#xff0c;关于这方面的帖…

adpcm 解码音量小_音质提升不只是一点点HiFi捆绑利器aune BU1便携解码耳放评测

烧友&#xff1a;phoexi 香港展的时候路过aune展位&#xff0c;看到一个金色的小机器&#xff0c;我还以为是失传已久的限量版B1ltd。走近一看玻璃窗和B1不一样&#xff0c;才发现这是传说中的新品便携解码耳放BU1。 BU1做工相当好&#xff0c;比B1s好&#xff0c;外壳的拉丝工…

解码resources时里面是空的_【汛情手记】要干不要水,从一款单4499解码衍生的臆想...

春风不度玉门关&#xff0c;又见才子伴乐谈。 2020确实不是一个太平的年份&#xff0c;才别疫情&#xff0c;又遇汛清&#xff0c;最近长江沿线城市水灾不断&#xff0c;我所在的城市启动了一级响应&#xff0c;作为预备役非战斗人员&#xff0c;才子已经被指派上前线驻点巡堤&…