原链接:
https://blog.csdn.net/weixin_44593822/article/details/124752825
https://blog.csdn.net/weixin_43653599/article/details/115936715
基本概念
<dependency> 中添加 <scope> :设置依赖的作用范围,
以下取值:
scope | 编译 | 测试 | 运行 | 打包 | example |
---|---|---|---|---|---|
compile(默认) | √ | √ | √ | ||
provided | √ | √ | × | servlet-api,Tomcat已引入 | |
runtime | × | √ | JDBC 驱动包 | ||
test | √ | √ | × | Junit |
依赖冲突
- 最短路径优先原则
- 最先声明原则(优先级在1之后)
- 排除依赖
引入spring-context时排除引入spring-aop,以便使用 spring-webmvc的spring-aop。
-
锁定版本
不考虑依赖的声明顺序和依赖路径
dependencies 和 dependencyManagement
- 父项目中使用 dependencies 引入依赖,子项目会自动继承父项目中的全部依赖项(全部继承);
- 父项目中使用 dependencyManagement 声明依赖,并不会引入依赖,子项目需要时再引入。