【发布时间】:2016-11-24 15:21:17
【问题描述】:
我们正在构建一个可以在提供 j2ee.jar 的 Websphere 上运行的耳朵。
现在我们遇到了一个 ejb(称为 ejb.jar)依赖于另一个依赖于 j2ee.jar 的 jar(称为 util.jar)的情况。
如果将 util.jar 的 pom 中的 j2ee.jar 标记为“provided”,则 ejb.jar 将不会构建,因为provided 不具有传递性。如果我们把它标记为“编译”,它可能会成为ear的编译依赖,除非我们覆盖作用域。
最好的方法是什么? util.jar 是否应该提供依赖项,即使它只是一个不起眼的 jar?还是 jar 应该只有编译依赖?
【问题讨论】:
-
假设您使用的是基于 ecipse 的 IDE,您有 added 项目的 WebSphere 或 J2EE 兼容运行时吗?
-
我看到您正在使用 maven 构建,我认为 this 是添加关联运行时 jar 的等效方式
-
@Lightbeard 感谢您的 cmets,但这与在 IDE 中构建无关,也与将依赖项放入本地存储库无关。这纯粹是关于如果在传递 jar 中使用“提供的”依赖项,如何以有用且正确的方式构造 pom 的问题。
-
来自maven's docs:“在为Java Enterprise Edition 构建Web 应用程序时,您需要将Servlet API 和相关Java EE API 的依赖设置为提供的范围”
-
@Lightbeard 谢谢,但我已经知道了。我说的是 jars 中提供的依赖项(不是在 wars/ears 中,它们显然很有用)
标签: java maven jakarta-ee jar