EAR 模块

EAR 插件支持以下模块的附加配置:

如果您要配置的工件未在上面列出,您可以按照本页下方的添加自定义工件类型指南创建自己的自定义工件配置。

这些模块名称进入modulesEAR 插件的参数。例如,要配置 EjbModule 的属性,EAR 插件配置modules如下所示:

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <modules>
            <ejbModule>
              <!-- property configurations goes here -->
            </ejbModule>
          </modules>
        </configuration>
      </plugin>
      [...]
</project>

ejbClientModule属性

EjbClientModule 可以使用以下配置选项:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“ejb 客户端”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 URI 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • libDirectory - 设置包含打包到存档中的 Java 库 (JAR) 的存档目录。默认null意味着存档不包含打包的库。如果库位于存档的根目录,则使用单斜杠 ('/') 进行配置。如果libDirectory是,nullClass-Path模块的设置MANIFEST.MF被修改为引用打包在 EAR 中的库。这里的修改是指:
    • 如果MANIFEST.MF没有Class-Path设置,则添加。
    • 设置 EAR 中打包的匹配库的现有元素Class-Path将替换为对 EAR 中匹配库的引用。
    • 如果skipClassPathModification参数为 false ,则打包在 EAR 中的其他库Class-Path将按照 EAR 对库的依赖顺序附加到设置中。

    如果libDirectory不是null并且如果使用了瘦模块,则修改模块中的设置,并从模块中删除位于 EAR 中的模块Class-Path库和匹配的 EAR 库。MANIFEST.MFlibDirectory

  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为真。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

ejbModule属性

以下配置选项可用于 EjbModule:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“ejb”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • libDirectory - 引用ejbClientModule的同名属性。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

jarModule属性

以下配置选项可用于 JarModule:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“罐子”。如果模块的工件是测试 JAR,则使用“test-jar”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • includeInApplicationXml - 如果你想在application.xml. 默认为假。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为真。

    如果属性为 false 并且满足以下条件之一,则从另一个模块的Class-Path设置中删除该模块:MANIFEST.MFclassPathItem

    • 另一个模块不包含其所有依赖项(请参阅libDirectory特定模块类型的属性)。
    • skinnyWars参数为 true ,另一个模块是webModule
    • skinnyModules参数为真。

    如果属性为 true 并且满足以下条件之一,则更新另一个模块Class-Path设置中对模块的现有引用以MANIFEST.MF匹配 EAR 中模块的位置:classPathItem

    • 另一个模块不包含其所有依赖项(请参阅libDirectory特定模块类型的属性)。
    • skinnyWars参数为 true ,另一个模块是webModule
    • skinnyModules参数为真。

    如果 为真,则该模块被添加到Class-Path另一个模块的设置中,设置中classPathItem不存在对该模块的引用Class-Path并且满足以下条件之一:

parModule属性

ParModule 可以使用以下配置选项:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“标准”。如果您要配置的工件是使用JBoss Packaging Maven Plugin构建的并且具有“jboss-par”类型,那么应该明确指定该类型。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • libDirectory - 引用ejbClientModule的同名属性。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

rarModule属性

RarModule 可以使用以下配置选项:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“rar”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • libDirectory - 设置存档目录,其中包含打包到存档中的 Java 库。默认为“/”,表示库位于存档的根目录。有关详细信息,请参阅ejbClientModule的同名属性。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

sarModule属性

SarModule 可以使用以下配置选项:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“sar”。如果您要配置的工件是使用JBoss Packaging Maven Plugin构建的并且具有“jboss-sar”类型,则应明确指定该类型。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • libDirectory - 设置存档目录,其中包含打包到存档中的 Java 库。默认为“lib”。有关详细信息,请参阅ejbClientModule的同名属性。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

webModule属性

以下配置选项可用于 WebModule:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“战争”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • contextRoot - 设置此 Web 工件的上下文根。
  • libDirectory - 设置存档目录,其中包含打包到存档中的 Java 库。默认为“WEB-INF/lib”。有关详细信息,请参阅ejbClientModule的同名属性。如果libDirectory不是null,并且如果使用了瘦 WAR瘦模块,则修改模块中的设置,并从模块中删除位于 EAR 中的模块Class-Path库和匹配的 EAR 库。MANIFEST.MFlibDirectory
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

wsrModule属性

WsrModule 可以使用以下配置选项:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“wsr”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • libDirectory - 设置存档目录,其中包含打包到存档中的 Java 库。默认为“lib”。有关详细信息,请参阅ejbClientModule的同名属性。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

harModule属性

以下配置选项可用于 HarModule:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“har”。如果您要配置的工件是使用JBoss Packaging Maven Plugin构建的并且具有“jboss-har”类型,则应明确指定该类型。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • libDirectory - 设置存档目录,其中包含打包到存档中的 Java 库。默认为“lib”。有关详细信息,请参阅ejbClientModule的同名属性。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

appClientModule属性

AppClientModule 可以使用以下配置选项:

  • groupId - 设置您要配置的工件的 groupId。
  • artifactId - 设置要配置的工件的 artifactId。
  • type - 设置您要配置的工件的类型。默认为“应用程序客户端”。
  • 分类器- 如果多个工件与 groupId/artifactId/type 匹配,则设置要配置的工件的分类器。使用 mainArtifactId(默认为'none')来定义主要工件(例如,没有分类器的工件)。
  • bundleDir - 设置此工件在 ear 存档中的位置。如果未设置,此工件将打包在存档的根目录中。
  • bundleFileName - 在 ear 存档中设置此工件的新名称。如果未设置,则使用存储库中工件的文件名。
  • exclude - 设置为 true 以排除此工件被打包到 ear 存档中。默认为假。
  • uri - 在 ear 存档中设置此工件的 uri 路径。未设置时自动确定。
  • unpack - 设置为 true 以根据其 uri 将此工件解压到 ear 存档中。默认为假。
  • altDeploymentDescriptor - 设置此模块的替代部署描述符。
  • moduleId - 在生成的 application.xml 中设置模块的 id。
  • classPathItem - 定义模块是否是其他模块Class-Path设置的元素。MANIFEST.MF默认为假。当模块从设置中删除或添加到设置中或在其他模块的设置中更新对模块的现有引用时,请参阅jarModuleclassPathItem的属性。Class-PathClass-PathClass-PathMANIFEST.MF

添加自定义工件类型

如果您需要将自定义工件类型映射到其中一种类型,请使用customArtifactTypeMappings.

例如,要将自定义 'my-rar' 映射到 'rar' 标准工件的类型,请将以下内容添加到 pom 的配置中:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <artifactTypeMappings>
            <artifactTypeMapping type="my-rar" mapping="rar"/>
          </artifactTypeMappings>
        </configuration>
      </plugin>
    </plugins>
  </build>