91名师指路-头部
91名师指路

maven中dependencyManagement和dependencies的区别

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。
dependencyManagement 通常用在一个项目的父工程的pom里面,dependencyManagement 元素能让所有的子项目中引用一个依赖而不用显示的指定版本号。Maven会沿着父子层次向上查找,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用这个dependencyManagement 元素中指定的版本号。

例如:父项目中。

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>


然后再子项目中添加 spring-boot-dependencies 不用再指定版本号,例如:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
</dependency>


这样做得好处就是:

    如果有多个子项目都引用同样的依赖,则可以避免再每个使用的子项目里面都什么一个版本号,这样当想升级或 切换到另一个版本 时,只需要再顶层父容器里面更新,而不需要再一个个的子项目中去修改,另外如果某个子项目需要另外的一个版本,只需要声明version即可。


注意:

1)dependencyManagement 里只是声明依赖,并不实现引入,因此子项目里面需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中集成下来的,只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中集成该项,并且version和scope都读取自父pom


2)如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。



2021-11-06 10:33:26     阅读(705)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部