【问题标题】:Setting up EJB build classpath in Eclipse在 Eclipse 中设置 EJB 构建类路径
【发布时间】:2023-03-04 03:29:01
【问题描述】:

我已经安装了 Eclipse、WildFly 和 Jboss 工具。我创建了一个 EAR/Maven 项目和一个 EJB/Maven 项目。

我将所有依赖项添加到 EAR pom.xml。 Jboss Tools 部署 WildFly EAR 库没有问题,应用程序运行良好。

问题在于 Eclipse 中 EJB 项目中的构建类路径。由于所有依赖项都在 EAR pom.xml 而不是 EJB pom.xml 中配置,我无法弄清楚如何告诉 Eclipse 中的 EJB 项目从 EAR 项目中获取定义为依赖项的 jar。

如何设置?

【问题讨论】:

    标签: java eclipse maven jakarta-ee ejb


    【解决方案1】:

    在 EJB pom.xml 中添加依赖项,而不是在 EAR pom.xml 中。

    【讨论】:

    • 我不能,我需要 WAR 的依赖项,JAR 必须在 EAR 库中。
    • 在你的战争的 pom.xml 中添加对 ejb 项目的依赖
    • 我更喜欢将 jar 放在 EAR 中,因为将来我可能会有其他 EJB 使用相同的 jar。
    【解决方案2】:

    您想“从 EAR 项目中获取定义为依赖项的 jars”,但这不是 Maven 的工作方式。

    根据 pom.xml 中定义的依赖关系,从 Maven 存储库(如 MavenCentral 或您的本地存储库)中提取 Jars。正如@N.Shrivastava 已经说过的那样,您在实际使用依赖项的项目的 pom 中定义依赖项。因此,当您的耳朵包含具有一些依赖项的 ejb jar 时,请将依赖项放入 ejb jar 的 pom 并从耳朵的 pom 中删除它们。它们也会被传递到耳朵中。

    如果你需要在不同的ejb jars中拥有相同的依赖集,这可以通过创建一个单独的打包pom的项目来实现。那么不同的ejb jars就可以依赖那个pom项目,并从pom项目中传递地提取所有的依赖。

    【讨论】:

    • 感谢您的信息。如果我将依赖项添加到 EJB pom.xml,这些 jar 文件将物理放置在哪里?在<root EBJ>/lib 文件夹中?
    • Maven 通过本地存储库处理 jar,该存储库通常位于您的主目录中的 .m2/repository 中。除非需要构建它们,否则它们不会被复制到项目中。一只耳朵。构建中的所有内容都在target 目录中处理。
    • 我将 apache commons lang 添加到 EJB pom.xml,它被下载/复制到 .m2/repository,但 projecttarget/lib 和 Wildfly EAR/lib 都是空的。有什么问题?
    • 在构建EAR时,依赖是否打包到EAR工件中?
    • 解决方案是在 Eclipse 中刷新 EAR 项目,然后将 EJB 依赖项复制到 EAR/lib。如果我不刷新项目,它不会复制 jars。
    猜你喜欢
    • 2011-09-19
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多