18 Plugin Management

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.

18.1 Was sind Maven-Plugins?

Maven-Plugins sind Erweiterungen, die Aufgaben im Build-Lifecycle ausführen. Es gibt zwei Haupttypen:

18.2 Plugin Management einrichten

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>

18.2.1 Erläuterung

18.3 Verwendung von Plugins in Unterprojekten

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>

18.3.1 Erläuterung

18.4 Beispiele für häufige Plugins

18.4.1 Maven Compiler Plugin

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>

18.4.2 Maven Surefire 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>

18.5 Best Practices für das Plugin Management

  1. Zentrale Verwaltung
    Deklarieren Sie gemeinsame Plugin-Versionen und -Konfigurationen an einer Stelle (z.B. im übergeordneten POM).

  2. Konsistenz
    Verwenden Sie in allen Modulen identische Plugin-Versionen, um Build-Konflikte zu vermeiden.

  3. Explizite Aktivierung
    In den Unterprojekten müssen die Plugins explizit aufgelistet werden, damit sie ihre Konfiguration aus dem Plugin Management übernehmen.

  4. 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.