Maven使用dependencyManagement标签来进行依赖版本的管理。
dependencyManagement是maven语法提供的标签,用来统一管理jar包依赖的版本,但是不会引入依赖,故dependencies中不会存在dependencyManagement标签中添加的依赖
dependencyManagement标签的作用
依赖继承管理:dependencyManagement声明依赖,子模块通过<dependency>选这自己实际需要的依赖
父模块:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencyManagement>
子模块:
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
依赖优先级:
当我们引入了相同的依赖时,层级越深优先级越低。相同层级,声明的依赖覆盖声明的依赖
依赖传递:
我们项目中导入A依赖,而A依赖中引用了B依赖,那么B依赖也会被导入到我们的项目中,这就是依赖的传递。好处是:大大减少我们导入的依赖数量
依赖排除:
当有我们不需要的依赖传递进来是,可以通过使用<exclusion>标签排除掉
未添加<exclusion>标签时
添加标签
添加后