Property | Optional? | Description | Default |
---|---|---|---|
maven.ear.final.name | Yes | Name of the generated EAR file. | ${maven.final.name}.ear |
maven.ear.manifest | Yes | Location of the manifest file to be used within the ear file. | ${maven.ear.src}/META-INF/MANIFEST.MF |
maven.ear.displayname | Yes |
Display name of the application to be used
when application.xml file is autogenerated
|
${pom.artifactId} |
maven.ear.resources | Yes | Directory that resources are copied to during the build.NOTE: cannot have the same value of ${maven.ear.src}! | ${maven.build.dir}/ear |
maven.ear.src | Yes | Single directory for extra files to include in the EAR. NOTE: cannot have the same value of ${maven.ear.resources}! | ${maven.src.dir}/application |
maven.ear.descriptordir | Yes |
Directory where the application.xml file will be auto-generated (only if maven.ear.appxml.generate is true).
|
${maven.build.dir} |
maven.ear.appxml | Yes |
Location of the application.xml file
to be used within the ear file.
|
${maven.ear.src}/META-INF/application.xml |
maven.ear.appxml.generate | Yes |
Indicates if application.xml files should
be autogenerated
|
false |
maven.ear.appxml.version | Yes | Inserts the doctype header depending on the specified version. | 1.3 |
maven.ear.appxml.encoding | Yes |
Character encoding for the auto-generated application.xml file.
|
UTF-8 |
maven.ear.appxml.description | Yes | The description element inserted in the descriptor. | ${pom.description} |
maven.ear.appxml.securityRoles | Yes |
A comma-separated list of role names. Will create xml element security-role with sub-element role-name .
|
Empty |
Property | Description | See |
---|---|---|
maven.build.dir | where the component will be assembled | maven.build.dir |
maven.final.name | The assembled component will be ${maven.build.dir}/${maven.final.name}.ear |
maven.final.name |
You must tell Maven what artifact you want to include in the ear. This operation is type sensitive. Maven can bundle in ear artifacts of following types: jar, war, ejb, rar, sar. Artifacts of other types are ignored. This is achieved by specifying meta-information in the POM, using the following syntax:
<dependency> <groupId>groupId</groupId> <artifactId>ejbArtifactId</artifactId> <version>aversion</version> <type>ejb</type> <properties> <ear.bundle>true</ear.bundle> </properties> </dependency>
Those artifacts will be also "visible" during generation
of application.xml
file. In case of war artifacts you can also
specify context root which will be set in application.xml
file:
<dependency> <groupId>groupId</groupId> <artifactId>warArtifactId</artifactId> <version>aversion</version> <type>war</type> <properties> <ear.bundle>true</ear.bundle> <ear.appxml.war.context-root>webapp</ear.appxml.war.context-root> </properties> </dependency>
Note that by default the artifacts will be bundled in the EAR's root directory. To change the location where an artifact is bundled, please use the ear.bundle.dir
property:
<dependency> <groupId>groupId</groupId> <artifactId>jarArtifactId</artifactId> <version>aversion</version> <type>jar</type> <properties> <ear.bundle>true</ear.bundle> <ear.bundle.dir>APP-INF/lib</ear.bundle.dir> </properties> </dependency>
(it does not matter if the value of ear.bundle.dir
starts with a slash (/
) or not - it will always be relative to the root of the EAR)
It is also possible to change the name by which the dependency will be bundles using the ear.bundle.name
property:
<dependency> <groupId>groupId</groupId> <artifactId>jarArtifactId</artifactId> <version>aversion</version> <type>jar</type> <properties> <ear.bundle>true</ear.bundle> <ear.bundle.name>aJar</ear.bundle.name> </properties> </dependency>
In the example above, the dependency will be bundled simply as aJar
and not jarArtifactId.aversion
; note that ear.bundle.name
and ear.bundle.dir
can be used together:
<dependency> <groupId>groupId</groupId> <artifactId>jarArtifactId</artifactId> <version>aversion</version> <type>jar</type> <properties> <ear.bundle>true</ear.bundle> <ear.bundle.name>aJar</ear.bundle.name> <ear.bundle.dir>/anotherDir</ear.bundle.dir> </properties> </dependency>
Finally, please note that if a jar is a java client module, you will need to declare
it using the ear.module
property, rather than ear.bundle:
<dependency> <groupId>groupId</groupId> <artifactId>jarArtifactId</artifactId> <version>aversion</version> <type>jar</type> <properties> <ear.module>true</ear.module> </properties> </dependency>