Maven 记录
-
groupId、artifactId 和 version:控制依赖包的基本坐标
-
type:依赖的类型,对应项目坐标的 packaging 配置
-
scope:依赖的范围
-
optional:控制依赖是否可选
-
exclusions:控制排除传递性依赖
依赖范围与 classpath 的关系
| 编译有效 | 测试有效 | 运行时有效 | |
|---|---|---|---|
| compile | Y | Y | Y |
| test | - | Y | - |
| provided | Y | Y | - |
| runtime | - | Y | Y |
| system | Y | Y | - |
传递性依赖和依赖范围
| 第一直接依赖/第二直接依赖 | compile | test | provided | runtime |
|---|---|---|---|---|
| compile | compile | - | - | runtime |
| test | test | - | - | test |
| provided | provided | - | provided | provided |
| runtime | runtime | - | - | runtiome |
依赖调解
-
路径最近者优先
-
第一声明者优先
可选依赖
A -> B、B -> X(可选)、B -> Y(可选) 时,X,Y 不会传递到 A,对 A 不会有任何影响。

浙公网安备 33010602011771号