配置和使用

介绍

EAR 插件允许自动生成描述符部署,例如application.xml。这一代已经由目标的参数定制,请参阅目标描述

配置 EAR 插件

EAR Plugin 的配置与其他插件的配置没有任何不同。配置应类似于:

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <configuration>
          <!-- configuration elements goes here -->
        </configuration>
      </plugin>
   [...]
</project>

在 pom.xml 中配置 EAR 插件时,不要在其中声明任何 <executions> 元素,因为它在ear项目的打包阶段总是至少调用一次。

执行和生成你的 EAR 包

当您的项目 <packaging> 为ear时,EAR 插件将替换 Jar 插件。所以要生成你的 EAR 包,你只需要像这样调用包阶段:

mvn package

复制资源

EAR 的默认资源目录是由earSourcesDirectory参数定义的src/main/application 。如果需要,可以使用过滤参数过滤此目录的内容。

有关更多详细信息,请查看示例。

高级配置

任何 EAR 模块都可以进一步定制如下:

  • bundleDir:EAR 结构中将存储工件的目录。
  • bundleFileName:EAR 结构中工件的名称。
  • uri: EAR 结构中工件的完整路径。
  • exclude :从生成的耳朵中排除工件
  • unpack:将生成的 ear 中的 artifact 解包。

可以使用 contextRoot 参数自定义 Web 模块的上下文根。

请注意,第三方库(即 JarModule)不包含在生成的 application.xml 中(只有 ejb-client 应该包含在java条目中)。但是,可以通过指定includeInApplicationXml标志将 jar 依赖项包含在生成的 application.xml 中。

还可以通过指定defaultLibBundleDir参数为所有第三方库指定默认捆绑目录。

可以在 security 参数下指定安全设置。

默认情况下应该解包的工件类型可以使用 unpackTypes 参数指定

用于存储在 EAR 中的工件的文件名映射可以使用fileNameMapping参数来指定。此参数的有效值为standard(默认)和full。通过将full指定为文件名映射,工件以groupId为前缀,其中的点已替换为破折号。

有关 EAR 模块的更多信息,请参阅模块配置页面。

您可以查看示例以获取有关这些高级配置的更多信息。

JBoss 支持

EAR 插件可以自动生成 jboss-app.xml。为此,必须配置“jboss”元素并采用以下子元素:

  • version:要使用的目标 JBoss 版本,3.2、4、4.2 或 5(默认为 4)。
  • library-directory : 可以在 ear 中找到库的目录(仅限 JBoss 4.2+)
  • security-domain:安全管理器的 JNDI 名称(仅限 JBoss 4+)
  • unauthenticated-principal:未经身份验证的主体(仅限 JBoss 4+)
  • loader-repository:UnifiedLoaderRepository MBean 的名称,用于 ear 提供在 ear 中部署的类的 ear 级别范围。它可以有一个loaderRepositoryClass属性,该属性定义要使用的类加载器存储库类
  • loader-repository-config:类加载器存储库配置。如果没有定义loader-repository元素,则添加一个默认元素。它可以有一个configParserClass属性,该属性定义要使用的类加载器的配置解析器类。

    下面的 pom 片段完全配置了以下 loader 存储库

    <loader-repository loaderRepositoryClass='dot.com.LoaderRepository'>
        dot.com:loader=unique-archive-name
        <loader-repository-config configParserClass='dot.com.LoaderParser'>
            java2ParentDelegation=true
        </loader-repository-config>
    </loader-repository>
    <configuration>
      <jboss>
        [...]
        <loader-repository loaderRepositoryClass="dot.com.LoaderRepository">
          dot.com:loader=unique-archive-name
        </loader-repository>
        <loader-repository-config configParserClass="dot.com.LoaderParser">
          java2ParentDelegation=true
        </loader-repository-config>
      </jboss>
    </configuration>
  • jmx-name:ear mbean 的对象名称。
  • module-order:指定在 application.xml 文件中指定的模块被加载的顺序(仅限 JBoss 4.2)
  • data-sources:指定要添加到 jboss-app.xml 中的所需数据源,用法如下:
    <configuration>
      <jboss>
        [...]
        <data-sources>
          <data-source>main-ds.xml</data-source>
          <data-source>config/secondary-ds.xml</data-source>
          [...]
        </data-sources>
      </jboss>
    </configuration>

Hibernate 归档 (HAR) 和服务归档 (SAR) 将被自动识别并添加到 jboss-app.xml 文件中。

您可以查看示例以获取有关 JBoss 支持的更多信息。