Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可传递依赖项是否需要位于编译时路径上?_Java_Maven_Build - Fatal编程技术网

Java 可传递依赖项是否需要位于编译时路径上?

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的依赖,才能使用其中的内容 这是其他构建工具的正常行为(向编译时路径添加可传递依赖项)吗 为什么编译时需要可传递依赖项?我理解在打包代码和/或在运行时需要它们。但我似

我使用Maven作为java应用程序的构建工具,但这个问题可能适用于其他构建工具

我在pom.xml中声明了对
a.jar
的依赖关系

A.jar
也有一个pom.xml,并声明了对
B.jar的依赖关系

我在代码中使用了
B.jar
中的类,maven对我的代码进行了很好的编译

我很困惑,因为我本以为必须在pom.xml中显式声明对
B.jar
的依赖,才能使用其中的内容

这是其他构建工具的正常行为(向编译时路径添加可传递依赖项)吗


为什么编译时需要可传递依赖项?我理解在打包代码和/或在运行时需要它们。但我似乎想不出编译时需要传递依赖项的情况。

如果有导入,就应该有依赖项


mvn依赖项:analyze可以提供帮助

我相信这个想法是正确的

…jar将被打包以在运行时使用(由依赖项A.jar使用)。那么,为什么不让项目访问它们呢