Maven ear Plugin: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 47: | Line 47: | ||
<pre> | <pre> | ||
<plugin> | |||
<artifactId>maven-ear-plugin</artifactId> | |||
<configuration> | |||
<modules> | |||
<jarModule> | |||
<groupId>io.novaordis.playground.jee.ear.war-and-lib</groupId> | |||
<artifactId>ear-embedded-lib</artifactId> | |||
<includeInApplicationXml>true</includeInApplicationXml> | |||
</jarModule> | |||
... | |||
</modules> | |||
</configuration> | |||
</plugin> | |||
</pre> | |||
</ |
Revision as of 22:37, 18 March 2016
External
Internal
Overview
Each Maven module creates just one artifact, and as EARs are aggregations of multiple artifacts, a project that produces an EAR has at least two modules: the module that produces the EAR and the module that produces the actual content (WAR, JAR, etc.).
Playground Example
The following example shows how to build an EAR that contains a library JAR and a WAR. It is a three-module Maven project.
The interesting pom.xml that builds the EAR is found here:
Notes
- The WAR dependency must be explicitly declared of type "war", otherwise the dependency management will attempt to find a JAR and fail.
- The EAR plugin automatically generates an application.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd"> <application> <display-name>ear-example</display-name> <module> <web> <web-uri>ear-embedded-web-application-1.war</web-uri> <context-root>/test</context-root> </web> </module> </application>
- If <jboss> is specified in the plugin's configuration, Maven will also generate a JBoss-specific deployment descriptor. Versions seem to be supported by default up to 5.
Including a Third-Party Application Module
<plugin> <artifactId>maven-ear-plugin</artifactId> <configuration> <modules> <jarModule> <groupId>io.novaordis.playground.jee.ear.war-and-lib</groupId> <artifactId>ear-embedded-lib</artifactId> <includeInApplicationXml>true</includeInApplicationXml> </jarModule> ... </modules> </configuration> </plugin>