我有一个 Maven 项目,我想与我的其他几个项目分享。它有一些自定义代码,然后是一些对 log4j、jasypt 等的依赖项。
我构建它并将其安装到我的本地 maven 存储库。我可以看到它已成功放置在那里。查看 .m2/repository/derp/Foo/1.0 它有一个 .pom 定义了所有依赖项。
我还可以将它定义为我的更高级别项目中的依赖项,并且它可以编译。
<dependency>
<groupId>my.group</groupId>
<artifactId>Foo</artifactId>
<version>1.0</version>
</dependency>
我可以在 Eclipse 中的“Maven 依赖项”中看到 Jar,扩展该 jar 我可以看到它在 META-INF/maven/derp/Foo/pom.xml 中有正确的 pom 和依赖项。
但是我在 Foo 之上的顶级项目没有得到 Foo 需要的依赖项。我得到运行时异常,并且在 Eclipse 中我的 maven 依赖项中没有任何传递依赖项 jar。
我需要做些什么来确保 Maven 知道在我的本地 repo 中查看 Pom for Foo,这样它才能获得它需要的所有传递依赖项?
- - - 编辑 - - -
回答下面的评论,它们的定义是这样的,依赖项标签位于项目标签下的顶层。
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.2</version>
</dependency>
ETC...
这些是 maven 在我刚刚构建和运行这个 Foo 项目时正确找到的 jar,但是如果项目依赖于 Foo (Bar),maven 不包含这些 jar,并且我在尝试运行 Bar 时会发现。