<runtime> Maven 依赖传递性

<runtime> Maven dependencies transitivity

考虑像 A-->B-->C 这样的依赖树。假设 B 在 A.

compile

如果 C 在 B 中具有 compile 作用域,那么在编译 A 时,C 将包含在 A 的类路径中。

如果 C 在 B 中有 provided 作用域,那么在编译 A 时,C 将不会包含在 A 的类路径中,除非 A 声明了 C,例如作为 编译 依赖。

如果 C 在 B 中有一个 runtime 范围,当 运行 A 在专用容器中时,C 是否可用到 A 的类路径?

假设 A->B 是 "compile",它将是 A 的运行时依赖项。这在 table(向下滚动)中解释:

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

它几乎概括了整个 transitivity/scope 问题。