假设存在依赖关系 A --> B --> C
,A 依赖 B,B 依赖 C。称 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,A 对于 C 是传递性依赖。
依赖范围影响传递性依赖
依赖范围会对传递性依赖产生影响,如下表所示,最左边的一行表示第一依赖范围,最上面的一行表示第二直接依赖范围
compile | test | provided | runtime | |
---|---|---|---|---|
compile | compile | — | — | runtime |
test | test | — | — | test |
provided | provided | — | provided | provided |
runtime | runtime | — | — | runtime |
助记规律:
- 当第二直接依赖范围是
compile
时,传递性依赖范围与第一直接依赖范围一致。 - 当第二直接依赖范围是
test
时,依赖不会得以传递。 - 当第二直接依赖范围是
provided
时,只传递第一依赖范围也为provided
的依赖。 - 当第二直接依赖范围是
runtime
时,传递性依赖范围与第一直接依赖范围一致,但compile
除外,此时传递性依赖范围为runtime
。