这个问题是关于澄清什么是“传递依赖(transitive dependency)”以及在Maven中它如何工作的。
我的定义:在一个依赖树中,比如 A --> B --> C,C 是 A 的传递依赖。假设 B 在 A 中的范围是 compile。
如果 C 在 B 中的范围是 compile,那么声明 B 作为 A 的依赖就足以使用 Maven 构建 A。但是,如果 C 在 B 中的范围是 provided,那么当 Maven 构建 A 时,除非 A 声明了 C 作为其依赖,否则构建将不会自动编译 A。
这样说对吗?
我的定义:在一个依赖树中,比如 A --> B --> C,C 是 A 的传递依赖。假设 B 在 A 中的范围是 compile。
如果 C 在 B 中的范围是 compile,那么声明 B 作为 A 的依赖就足以使用 Maven 构建 A。但是,如果 C 在 B 中的范围是 provided,那么当 Maven 构建 A 时,除非 A 声明了 C 作为其依赖,否则构建将不会自动编译 A。
这样说对吗?
import C.someClass
。这正确吗? - rado