简介:
重点学习:
1、dependency-scope 依赖范围
- compile 编译 默认,对编译、测试、运行都有效
- provided 编译和测试时有效
- runtime 测试和运行时有效
- test 测试
- system 与provided类似,在编译测试时有效,但与本机系统相关联,可移植性差
- import 导入的范围,它使用在dependencyManagement中,表示从其他pom中导入dependency的配置
2、依赖传递
若项目A依赖B,B依赖C
则在配置pom.xml-dependency后,A的依赖项中也会出现C
若想排除A对C的依赖,在A的pom中配置exclusion
3、依赖冲突
当一个项目通过依赖传递依赖了多个Jar,且这些Jar的版本不同,就会产生依赖冲突
原则:
1、短路优先
A->B->C->X(jar)
A->D->X(jar) 则有限依赖这个版本的X
2、路径相同,先声明先依赖
若路径长度相同,先声明谁优先依赖谁,即优先依赖dependency中写在前面的那个
4、聚合和继承
1、聚合
创建一个容器项目,使用modules引入需要打包的项目
当install该项目时,被引入的所有项目都会一起打包
2、继承
当很多项目都使用同一个包时,可使用dependencyManagement将jar包的配置抽离出来
创建一个父类项目,配置dependencyManagement
将需要引用该包的项目依赖坐标中的版本和范围去掉,并使用parent标签引入父项目