Maven bietet verschiedene Packaging Types an, die bestimmen, wie ein Projekt archiviert und bereitgestellt wird. Jeder Packaging Type ist für bestimmte Szenarien ausgelegt.
Dateiendung: .jar
Verwendung: Zur Bereitstellung von Java-Klassenbibliotheken oder
eigenständigen Java-Anwendungen. Enthält kompilierte Klassen, Ressourcen
und optional ein Manifest.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-library</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</project>Dateiendung: .war
Verwendung: Für Webanwendungen, die in einem Servlet Container (z.B.
Tomcat) bereitgestellt werden. Enthält Klassen, JSPs, HTML, CSS,
JavaScript und Konfigurationsdateien.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-webapp</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
</project>Dateiendung: .ear
Verwendung: Für Enterprise Java Anwendungen in Java EE Application
Servern (z.B. WildFly). Kann JARs und WARs bündeln, um eine vollständige
Unternehmensanwendung bereitzustellen.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-enterprise-app</artifactId>
<version>1.0.0</version>
<packaging>ear</packaging>
</project>Dateiendung: .pom
Verwendung: Wenn das Projekt selbst keine Artefakte erzeugt, sondern als
Container für Module dient (z.B. Multi-Modul-Projekte).
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
</project>Dateiendung: Keine spezifische Endung
Verwendung: Für Projekte, die ein Maven-Plugin bereitstellen. Ermöglicht
die Erweiterung von Maven um zusätzliche Goals und Funktionen.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-maven-plugin</artifactId>
<version>1.0.0</version>
<packaging>maven-plugin</packaging>
</project>Dateiendung: .jar
Verwendung: Für Projekte mit Enterprise JavaBeans, die in Java EE
Application Servern laufen.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-ejb-module</artifactId>
<version>1.0.0</version>
<packaging>ejb</packaging>
</project>Dateiendung: .rar
Verwendung: Für Resource Adapter in der Java EE Connector Architecture
(JCA), um Enterprise Information Systems anzubinden.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-resource-adapter</artifactId>
<version>1.0.0</version>
<packaging>rar</packaging>
</project>Neben den Standardtypen können auch eigene Packaging Types definiert werden, etwa für spezielle Archive. Hierfür sind zusätzliche Plugins nötig, um den Build-Prozess anzupassen.