Java 将一个罐子暴露在耳朵结构中的多次战争中
我有一个带有ear结构的maven项目,我正在wildfly 9.0.0上部署ear 我有一个jar和jpa一起做持久化,我有3场战争使用这个jar,如果我在其中一场战争中在pom上导入这个jar,这是可以的,但是如果我在两次战争中导入这个jar,CDI就不起作用了 我真正想做的是将这个罐子暴露在耳朵里的所有战争中,而无需在每个战争pom中导入您可以:Java 将一个罐子暴露在耳朵结构中的多次战争中,java,maven,war,wildfly,ear,Java,Maven,War,Wildfly,Ear,我有一个带有ear结构的maven项目,我正在wildfly 9.0.0上部署ear 我有一个jar和jpa一起做持久化,我有3场战争使用这个jar,如果我在其中一场战争中在pom上导入这个jar,这是可以的,但是如果我在两次战争中导入这个jar,CDI就不起作用了 我真正想做的是将这个罐子暴露在耳朵里的所有战争中,而无需在每个战争pom中导入您可以: 停止服务器 打开服务器配置文件。(standalone/configuration/standalone.xml) 在配置文件中找到EE子系
编辑:正如@Will T在jar的wars依赖项中的注释中正确指出的,应添加范围
,
。我已经将此配置,我的问题是如何配置poms,以便在不导入wars poms的情况下为所有wars提供jar您确定必须在每个子部署的poms中显式声明依赖项吗?我认为将ear子部署隔离设置为false会使war隐式地依赖于您想要的jar。从文档中可以看出:如果将ear子部署隔离设置为false,那么web.war中的类可以访问属于ejb1.jar和ejb2.jar的类。类似地,ejb1.jar中的类可以访问ejb2.jar中的类(反之亦然)。用户必须使用类路径条目或通过设置显式模块依赖项手动设置依赖项。()您希望确保每个war的pom都列出了jar,因为这将提供用于编译的类,但不会包含在war中。然后,您可以确保您的ear包含jar元素,并隔离元素ear子部署,以解决我的问题。谢谢