在 Eclipse 中设置 EJB 构建类路径

Posted

技术标签:

【中文标题】在 Eclipse 中设置 EJB 构建类路径【英文标题】:Setting up EJB build classpath in Eclipse 【发布时间】:2019-07-09 04:32:25 【问题描述】:

我已经安装了 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。

如何设置?

【问题讨论】:

【参考方案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。

以上是关于在 Eclipse 中设置 EJB 构建类路径的主要内容,如果未能解决你的问题,请参考以下文章

在eclipse中设置NDK目录的路径

在eclipse中设置maven仓库

如何从eclipse环境中获取NDK路径?

已经有了一个在命令行下调用c++ dll库文件的java程序,如何在eclipse中设置相关路径?

Eclipse“此编译单元不在java项目的构建路径上”

如何在eclipse中设置classpath