产生原因
- 为了解决,依赖A,A又依赖B、C,需要一一添加B、C的问题。
- 传递性依赖可以自动将必要的间接依赖,以传递性依赖的形式引入到当前的项目中。
传递性依赖与依赖范围
- A依赖B,B依赖C,A对B是第1直接依赖,B对C是第2直接依赖,A对C是传递性依赖。
- 第1直接依赖的范围和第2直接依赖范围决定来传递性依赖的范围。
第一\第二 | compile | test | provider | runtime |
---|---|---|---|---|
compile | compile | —— | —— | runtime |
test | test | —— | —— | test |
provided | provided | —— | provided | provided |
runtime | runtime | —— | —— | runtime |
规律:
- 当
第2直接依赖
的范围是compile的时候,传递性依赖的范围与第1直接依赖
的范围一致; - 当
第2直接依赖
的范围是test的时候,依赖不会得以传递; - 当
第2直接依赖
的范围是provided的时候,只传递第1直接依赖
范围也为provided的依赖,且传递性依赖的范围同样为provided; - 当
第2直接依赖
的范围是runtime的时候,传递性依赖的范围与第1直接依赖
的范围一致,但compile例外,此时传递性依赖的范围为runtime。