Maven dependencyManagement 详解及一些问题

前言:最近在工作中,项目中缺少某个依赖,但是在父项目中怎么添加也加载不了,原因竟是dependencyManagement不会主动下载依赖,只会在子项目中下载安装依赖

dependencyManagement(以下简称:《依赖管理器》)

《依赖管理器》简介

Maven中的《依赖管理器》元素提供了一种管理依赖版本号的方式。在《依赖管理器》元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有《依赖管理器》元素的项目,然后使用它指定的版本号。

注意:
《依赖管理器》中的依赖必须明确的指定依赖版本号,不然子模块引入该依赖后,将继承父模块《依赖管理器》中的设置,如果父模块的《依赖管理器》中没有设置依赖的版本号, 会导致子模块无法下载该依赖。

《依赖管理器》作用就是用来统一管理依赖版本号的,所以在父模块中可以添加所有子模块需要用到的依赖,然后统一指定版本号。子模块引入依赖时会继承父模块《依赖管理器》中设置的版本号设置。注:《依赖管理器》不会下载它里面配置的依赖。

注:SpringBoot《依赖管理器》<–父模块《依赖管理器》<–子项目依赖

在子模块中使用到的依赖如果存在SpringBoot《依赖管理器》中,该依赖会直接继承SpringBoot《依赖管理器》中的依赖版本号设置(其实也是从父模块继承而来,父模块从SpringBoot《依赖管理器》中继承)。

如果父模块的《依赖管理器》定义了SpringBoot《依赖管理器》中存在的依赖就会发生覆盖,此时子模块也是继承父模块《依赖管理器》中的依赖设置了。

你可能感兴趣的:(maven,maven,java,spring)