【发布时间】:2016-09-15 08:56:48
【问题描述】:
我有一个Java项目Foo,它依赖于bar.jar,它的maven构建如下:
-- foo/
---- foo.jar
---- 库/
------bar.jar
------(其他 lib jars)
foo.jar 的 MANIFEST.MF 有字段Class-Path: . lib/bar.jar ... (other lib jars) 和Main-Class: com.abc.foo.Main 可以通过命令java -jar foo.jar 调用
bar.jar 是从另一个依赖于 httpclient-4.5.jar 的 Java 项目 Bar 创建的。
所以问题是,在分发已经在其子文件夹 lib 中包含 bar.jar 的 Foo 构建时,我是否还需要包含 httpclient-4.5.jar?
更新: 我发现我想问的真正问题是关于传递依赖的。根据https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies,Maven 能够发现您自己的库所需的库(依赖)。
在我的例子中,Maven 可以确定 foo 依赖于 bar,而 bar 依赖于 httpclient-4.5.jar,它会将 httpclient-4.5.jar 抓取到 Project Foo 的 Maven 依赖项列表中。
这适用于我项目中的大多数依赖项,即依赖项的依赖项也出现在我的 Maven 依赖项中。但是,有一个依赖项(bar.jar),Maven 不会检索其依赖项(httpclient-4.5.jar)。这是我现在面临的关键问题。
【问题讨论】:
标签: java maven jar dependencies