四、依赖配置补充
4.1 依赖范围
4.1.1 import
管理依赖最基础的方法是继承,而且maven也是单继承。
如果要实现“继承”多个父工程的效果,可以使用import的依赖范围功能,类似java的“组合”
import使用要求:
- 打包类型必须是 pom
- 必须放在 dependencyManagement中
典型案例,就是引入springboot,spirngcloud依赖
- 这样导入后,当前工程的子工程也能拿到impot依赖中的pom
4.1.2 system
导入特定位置的jar包,这样导入不具有可移植性,仅限于本地使用,不推荐使用
4.1.3 runtime
专门用于编译时不需要,但运行时需要用到的jar包。
比如,编译时根据接口调用方法,实际运行时需要调用接口的实现类。比如jdbc
举例就是:热部署
4.2 可选依赖
含义:
- 可选的有含义就是“可有可无的.
- 核心含义:X依赖A,A中的一部分X用不到的代码依赖了B,那么X对比B来说就是“可有可无”的。
如何使用?
-
在依赖中添加:
<optional>true</optional>
为什么要这样配?
- 字如其意,当一个依赖是可选可不选时就可以这样配
- 实际开发中不需要这样用
- 理解是偏规范的一些配置
4.3 版本仲裁
当pom之间的同一个依赖版本出现冲突时,就会使用版本仲裁机制来确定使用哪个版本.
注意:
- maven定义并不是最高版本优先
- 在指定的pom位置下运行指令
mvn dependency:list
可以查看所有生效的依赖,依次验证生效的依赖
① 最短路径优先
某个工程25,依赖26和28,26依赖log4j,26依赖27,27依赖log4j
② 路径相同时,先声明优先
先声明先采取