up:: Maven 依赖 tag::依赖

假设存在依赖关系 A --> B --> C,A 依赖 B,B 依赖 C。称 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,A 对于 C 是传递性依赖

依赖范围影响传递性依赖

依赖范围会对传递性依赖产生影响,如下表所示,最左边的一行表示第一依赖范围,最上面的一行表示第二直接依赖范围

compiletestprovidedruntime
compilecompileruntime
testtesttest
providedprovidedprovidedprovided
runtimeruntimeruntime

助记规律:

  • 当第二直接依赖范围是 compile 时,传递性依赖范围与第一直接依赖范围一致。
  • 当第二直接依赖范围是 test 时,依赖不会得以传递。
  • 当第二直接依赖范围是 provided 时,只传递第一依赖范围也为 provided的依赖。
  • 当第二直接依赖范围是 runtime 时,传递性依赖范围与第一直接依赖范围一致,但 compile 除外,此时传递性依赖范围为 runtime