传递依赖需要在编译时路径上吗?

时间:2017-02-01 17:02:30

标签: java maven build

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

我在pom.xml中声明了对A.jar的依赖

A.jar也有一个pom.xml,并声明对B.jar

的依赖

我在代码中使用了来自B.jar的类,maven编译了我的代码就好了。

我感到困惑,因为我原本希望在 my pom.xml中明确声明对B.jar的依赖,以便使用它中的内容。

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

为什么需要传递依赖项才能编译?我知道在代码打包和/或运行时需要它们。但我似乎无法想到编译时需要传递依赖的情况。

2 个答案:

答案 0 :(得分:0)

如果您有导入,则应该具有依赖关系。

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

答案 1 :(得分:0)

我相信这个想法是

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