Java 可传递依赖项是否需要位于编译时路径上?
我使用Maven作为java应用程序的构建工具,但这个问题可能适用于其他构建工具 我在pom.xml中声明了对Java 可传递依赖项是否需要位于编译时路径上?,java,maven,build,Java,Maven,Build,我使用Maven作为java应用程序的构建工具,但这个问题可能适用于其他构建工具 我在pom.xml中声明了对a.jar的依赖关系 A.jar也有一个pom.xml,并声明了对B.jar的依赖关系 我在代码中使用了B.jar中的类,maven对我的代码进行了很好的编译 我很困惑,因为我本以为必须在pom.xml中显式声明对B.jar的依赖,才能使用其中的内容 这是其他构建工具的正常行为(向编译时路径添加可传递依赖项)吗 为什么编译时需要可传递依赖项?我理解在打包代码和/或在运行时需要它们。但我似
a.jar
的依赖关系
A.jar
也有一个pom.xml,并声明了对B.jar的依赖关系
我在代码中使用了B.jar
中的类,maven对我的代码进行了很好的编译
我很困惑,因为我本以为必须在pom.xml中显式声明对B.jar
的依赖,才能使用其中的内容
这是其他构建工具的正常行为(向编译时路径添加可传递依赖项)吗
为什么编译时需要可传递依赖项?我理解在打包代码和/或在运行时需要它们。但我似乎想不出编译时需要传递依赖项的情况。如果有导入,就应该有依赖项
mvn依赖项:analyze可以提供帮助 我相信这个想法是正确的 …jar将被打包以在运行时使用(由依赖项A.jar使用)。那么,为什么不让项目访问它们呢