Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse中设置EJB构建类路径_Java_Eclipse_Maven_Jakarta Ee_Ejb - Fatal编程技术网

Java 在Eclipse中设置EJB构建类路径

Java 在Eclipse中设置EJB构建类路径,java,eclipse,maven,jakarta-ee,ejb,Java,Eclipse,Maven,Jakarta Ee,Ejb,我已经安装了Eclipse、WildFly和Jboss工具。我创建了一个EAR/Maven项目和一个EJB/Maven项目 我将所有依赖项添加到EAR pom.xml中。Jboss工具部署WildFly EAR库时没有任何问题,应用程序运行良好 问题是Eclipse中EJB项目中的构建类路径。由于所有依赖项都是在EAR pom.xml中配置的,而不是在EJB pom.xml中配置的,因此我无法理解如何告诉Eclipse中的EJB项目从EAR项目中获取定义为依赖项的jar 如何设置?在EJB po

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

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

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


如何设置?

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

您希望从EAR项目中获取定义为依赖项的JAR,但这不是Maven的工作方式

JAR是根据pom中定义的依赖项从Maven存储库(如MavenCentral或您的本地存储库)中提取的。正如@N.Shrivastava已经说过的,您在实际使用依赖项的项目的pom中定义了依赖项。因此,当您有一个包含一些依赖项的ejb jar的ear时,将这些依赖项放入ejb jar的pom中,并从ear的pom中删除它们。它们也会通过过渡方式进入耳朵


如果您在不同的ejbjar中需要相同的依赖项集,可以通过创建一个单独的pom打包项目来实现。然后不同的ejb JAR可以依赖于该pom项目,并从pom项目中过渡地提取所有依赖项。

我不能,我需要用于WAR的依赖项,JAR必须在EAR库中。在war的pom.xml中将依赖项添加到ejb项目中,我更希望JAR在EAR中,因为将来我可能会有其他使用相同JAR的ejb。感谢提供信息。如果我将依赖项添加到EJB pom.xml中,那么这些jar文件将实际放置在哪里?在/lib文件夹中,Maven通过本地存储库处理JAR,该存储库通常位于主目录的.m2/repository中。它们不会复制到项目中,除非它们是构建ear所必需的。构建中的所有内容都在目标目录中处理。我将apache commons lang添加到EJB pom.xml中,它被下载/复制到.m2/repository,但projecttarget/lib和Wildfly EAR/lib都是空的。可能有什么问题?当您构建EAR时,依赖项是否打包到EAR工件中?解决方案是在Eclipse中刷新EAR项目,然后将EJB依赖项复制到EAR/lib。如果我不刷新项目,它就不会复制jar。