这个问题即将澄清传递依赖究竟是什么以及它在Maven中如何在非常高的水平上运作。
我的定义:在依赖树中,如 A - > B - > C , C是A 的传递依赖。假设 B 在 A 中具有范围 compile 。
如果 C 在 B 中具有范围 compile ,则将 B 声明为 A <的依赖关系< / em>足以使用Maven构建 A 。但是,如果 C 在 B 中提供 范围,那么当Maven构建 A 时,建筑物将不会自动编译< em> A 对 C ,除非 A 在其依赖项中声明 C 。
这是对的吗?
答案 0 :(得分:31)
你的假设是正确的。
有两种类型的Maven依赖项:
直接:这些是pom.xml
部分下<dependencies/>
文件中定义的依赖关系。
传递:这些依赖项是您的直接依赖项的依赖项。
provided
范围的依赖关系意味着:
war
文件,您不希望包含servlet-api
,servlet-jsp
等)答案 1 :(得分:-1)
声明项目时应包含的依赖项 本身是一个依赖项