JavaWeb开发思维导图之——Maven基础依赖管理(80)
一 概述
- 依赖配置
- 依赖传递
- 可选依赖
- 排除依赖
- 依赖范围
二 内容详情
2.1 依赖配置
1-概念
- 1-依赖指当前项目运行所需的jar
- 2-一个项目可以设置多个依赖
2-配置格式
- 1-作用:设置当前项目所依赖的所有jar
- 2-子标签<dependency>
3-引用项目依赖
- 1-说明: <dependency>添加项目配置
- 2-示例: 项目3引用项目2
- 3-可能出现的问题: 依赖传递
2.2 依赖传递
1-依赖分类
- 1-直接依赖: 在当前项目中通过依赖配置建立的依赖关系
- 2-间接依赖: 被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
2-依赖冲突
- 1-路径优先: 当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
- 2-声明优先: 当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 3-特殊优先: 当同级配置了相同资源的不同版本,后配置的覆盖先配置的
2.3 可选依赖
- 1-说明: 可选依赖指对外隐藏当前配置所依赖的资源—不透明
- 2-配置格式: dependency添加optional标签
- 示例:<optional>true</optional>
2.4 排除依赖
- 1-说明: 1-排除依赖指主动断开依赖的资源;2-被排除的资源无需指定版本
- 2-格式: dependency标签添加exclusions标签
- 3-示例: <exclusions><exclusion>groupId+artifactId</exclusion></exclusions>
2.5 依赖范围
1-概念:
- 1-依赖的jar默认情况下可以在任何地方使用
- 2-通过scope标签设定其作用范围
2-作用范围
- 1-主程序范围有效: main文件夹范围内
- 2-测试程序范围有效: test文件夹范围内
- 3-是否参与打包: package指令范围内
4-依赖范围scope
- 1-位置:dependency标签下
- 2-示例:<scope>compile</scope>
- 3-取值说明: 1-compile(默认); 2-test; 3-provided;4-runtime
5-依赖范围传递
- 1-带有以依赖范围的资源在进行传递时,作用范围受到影响
- 2-如何传递(了解)compile、test、provided、runtime遇到如何取值