Das Plugin Management in Maven ermöglicht die zentrale Verwaltung von Plugins, insbesondere in Multi-Modul-Projekten. Plugins können in einem übergeordneten POM deklariert und konfiguriert werden, sodass Unterprojekte automatisch auf diese Konfiguration zugreifen können.
Maven-Plugins sind Erweiterungen, die Aufgaben im Build-Lifecycle ausführen. Es gibt zwei Haupttypen:
Im übergeordneten POM werden Plugins im Abschnitt
<pluginManagement> konfiguriert. Diese Konfiguration
wird auf Unterprojekte übertragen, sofern dort die jeweiligen Plugins
explizit aufgeführt sind.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>In den Unterprojekten werden die im
<pluginManagement> definierten Plugins explizit
referenziert, damit sie ihre Konfiguration erben:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
</parent>
<groupId>com.example</groupId>
<artifactId>child-project</artifactId>
<version>1.0.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>Kompiliert den Java-Quellcode und legt Quell- und Zielversion fest.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>Führt Unit-Tests aus und erstellt Testberichte.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>Zentrale Verwaltung
Deklarieren Sie gemeinsame Plugin-Versionen und -Konfigurationen an
einer Stelle (z.B. im übergeordneten POM).
Konsistenz
Verwenden Sie in allen Modulen identische Plugin-Versionen, um
Build-Konflikte zu vermeiden.
Explizite Aktivierung
In den Unterprojekten müssen die Plugins explizit aufgelistet werden,
damit sie ihre Konfiguration aus dem Plugin Management
übernehmen.
Regelmäßige Updates
Halten Sie Plugin-Versionen aktuell, um Fehlerkorrekturen und neue
Funktionen zu nutzen.
Mit dem Maven Plugin Management lassen sich Plugins einheitlich verwalten und konfigurieren. Das gewährleistet konsistente Builds und vereinfacht die Wartung, besonders in komplexen Multi-Modul-Projekten.