将一个罐子暴露在耳朵结构的许多战争中

Expose one jar to many wars in ear structure

我有一个带有 ear 结构的 Maven 项目,我正在将 ear 部署到 wildfly 9.0.0

我有一个带有 jpa 的 jar 做持久化,我有 3 个 wars 使用这个 jar,如果我在其中一个 wars 中的 pom 上导入这个 jar 就可以了,但如果我在两个 war 中导入此 jar,CDI 将不起作用。

我真正想做的是将这个罐子暴露给耳朵里的所有 wars 而不是在每个 war pom

中导入

您可以:

  1. 停止服务器

  2. 打开服务器配置文件。 (standalone/configuration/standalone.xml)

  3. 在配置文件中找到 EE 子系统配置元素。配置文件的配置文件元素包含几个子系统元素。 EE 子系统元素的命名空间为 urn:jboss:domain:ee:1.2.

  4. 必要时更换自动关闭标签

  5. 添加 ear-subdeployments-isolated 元素

  6. 启动服务器

请注意,这会禁用所有部署的子部署模块隔离,而不仅仅是此部署。 documentation for all deployments

如果您只想进行此特定部署,您应该:

  1. 添加部署描述符文件

  2. 添加 ear-subdeployments-isolated 元素

    documentation for specific deployment

这对 JBOSS EAP 有效,它与 JBOSS wildfly 具有非常相似的行为。

编辑:正如@Will T 在 wars 的评论中正确指出的那样,应该添加范围为 <scope>provided<scope/> 的 jar 依赖项。