为了处理归档这个版本的 Maven EAR 插件,使用Maven Archiver 3.2.0。
要处理过滤此版本的 Maven EAR 插件,请使用Maven Filtering 3.1.1。
EAR 插件允许您自动生成部署描述符,例如application.xml。此生成可通过目标参数进行自定义,请参阅目标描述。
EAR 插件的配置与任何其他插件的配置没有任何不同。配置应类似于:
<project>
[...]
<build>
[...]
<plugins>
[...]
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<!-- configuration elements goes here -->
</configuration>
</plugin>
[...]
</project>在pom.xml中配置 EAR 插件时,不要在其中声明<executions>元素,因为它在ear项目的打包阶段总是至少调用一次。
EAR 的默认资源目录是由earSourceDirectory参数定义的src/main/application 。如果需要,可以使用过滤参数过滤此目录的内容。
有关更多详细信息,请查看示例。
任何 EAR 模块都可以进一步定制如下:
可以使用contextRoot参数自定义 Web 模块的上下文根。
请注意,第三方库(即 JarModule)不包含在生成的application.xml中(只有ejb-client应该包含在java条目中)。但是,可以通过指定includeInApplicationXml标志将jar依赖项包含在生成的application.xml中。
还可以通过指定defaultLibBundleDir参数为所有第三方库指定默认捆绑目录。
可以在security参数下指定安全设置。
默认情况下应该解包的工件类型可以使用unpackTypes参数指定。
用于存储在 EAR 中的工件的文件名映射可以使用fileNameMapping参数来指定。此参数的有效值为standard(默认)、full、no-version和no-version-for-ejb。通过将full指定为文件名映射,工件以groupId为前缀,其中的点已替换为破折号。no-version可以用作默认映射的替换;唯一的区别是省略了版本。no-version-for-ejb是一种专门化,它只为 ejb-jars 省略版本,并为其他 ear 模块保留它。
有关 EAR 模块的更多信息,请参阅模块配置页面。
您可以查看示例以获取有关这些高级配置的更多信息。
EAR 插件可以自动生成jboss-app.xml。为此,必须配置<jboss>元素并采用以下子元素:
下面的 POM 片段完全配置了以下加载程序存储库
<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><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 支持的更多信息。