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