Hintergrund#
Maven enthält zwar einen Packaging Type um EARs zu erstellen, allerdings werden alle WARs mit den gesamten WEB-INF/lib-Inhalt eingepackt. Das EAR Maven Plugin hat folgende Vorteile:- Die JARs tauchen nur einmal im EAR auf, auch wenn sie mehrfach im WAR referenziert werden. Das EAR Maven Plugin entfernt alle JARs aus dem WAR und deployed diese nur auf EAR-Ebene. Die Klassen können vom Parent-Classloader geladen werden, daher kann auch Heap-Speicher gespart werden.
- Die JARs werden nur noch einfach im EAR eingepackt. Im WAR wären sie doppelt eingepackt, je nach Application-Server kann dies zu Speicher- und Geschwindigkeitsvorteil führen.
Konfiguration#
Das Einbinden erfolgt durch die pom.xml:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <packaging>custom-ear</packaging> ... <build> <extensions> <extension> <groupId>com.intersult</groupId> <artifactId>ear-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> </extension> </extensions> ... </build> <pluginRepositories> <pluginRepository> <id>intersult-repo</id> <name>Intersult Repository</name> <url>http://repository.intersult.com/repository</url> </pluginRepository> </pluginRepositories> </project>