1 依赖配置
- 依赖指当前项目运行所需的jar,一个项目可以设置多个依赖。
- 格式:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2 依赖传递
- 依赖具有传递性
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源。
3 依赖传递冲突问题
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低;层级约浅,优先级越高。
- 声明优先:当资源在相同层级被依赖时,配置顺序考前的覆盖配置顺序靠后的。
- 特殊优先:当统计配置了相同资源的不同版本,后配置的覆盖先配置的。
4 可选依赖
<optional>true</optional>
<optional>false</optional>
5 排除依赖
- 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本 —— 不需要
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
6 依赖范围
- 依赖的jar默认情况可以在任何地方使用,可以通过 scope 标签设置其作用范围
- 作用范围
- 主程序范围有效(main文件夹范围内)
- 测试程序范围有效(test文件夹范围内)
- 是否参与打包(package指令范围内)
7 依赖范围传递性
- 带有依赖范围的资源在进行传递时,作用范围将受到影响