# 依赖管理
依赖指当前项目运行所需的 jar, 一个项目可以设置多个依赖
格式:
<!-- 设置当前项目所依赖的所有 jar--> | |
<dependencies> | |
<!-- 设置具体的依赖 --> | |
<dependency> | |
<!-- 依赖所属组 id--> | |
<groundId>org.springframework</groundId> | |
<!-- 依赖所属项目 id--> | |
<artifactId>spring-webmvc</artifactId> | |
<!-- 依赖版本号 --> | |
<version>5.2.10.RELEASE</version> | |
</dependency> | |
</dependencies> |
- 依赖具有传递性
- 间接依赖和直接依赖
- 间接依赖:被资源的资源如果依赖其它资源,当前项目间接依赖其它资源
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
# 依赖传递冲突问题
路径优先:当依赖中出现相同的资源时,层级越深,优先级月低,层级越浅,优先级越高
声明优先:当前资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
# <optional>true/false</optional>
# 可选依赖
隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性
可选依赖指对外隐藏当前所有依赖的资源 -- 不透明
<dependency> | |
<groupId>org.mybatis</groupId> | |
<artifactId>mybatis</artifactId> | |
<version>3.5.11</version> | |
<!-- 可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性 --> | |
<optional>true</optional> | |
</dependency> |
# 排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本 -- 不需要
排除依赖资源仅指定 GA 即可,无需指定 V