Abhängigkeiten verbannen mit maven-enforcer-plugin

Wenn mehrere Entwickler an einem maven-(multimodul-)Projekt arbeiten, ist es ja normal, dass neue Bibliotheken (mit oder ohne Absprache) über maven angebunden werden. Falls aber bestimmte Bibliotheken unerwünscht sind, sei es aus Lizenzgründen oder weil der Chef es einfach nicht will, ist es möglich solche Abhängigkeiten ein einer Art “Schwarze Liste” festzuhalten. Beim Bauen der Anwendung prüft maven, ob die Abhängigkeit verwendet werden darf. Falls nicht, wird der Compile-Vorgang mit einer Fehlermeldung abgebrochen.

Abhängigkeit verbannen

Nehmen wir mal als Beispiel die Bibliothek Lombok. Um Lombok unternehmensweit zu verbannen, muss in jeder pom.xml maven-enforcer-plugin wie folgt konfiguriert werden:

Nur bestimmte Version zulassen

Es ist außerdem möglich das Plugin so zu konfigurieren, dass nur eine bestimmte Version einer Bibliothek zugelassen wird. Nehmen wir an, es soll nur die Version 2.4.1 des Jackson-Mappers verwendet werden. Es ändert sich dabei im Vergleich zum obigen Beispiel nur der configuration-Knoten:

Hierbei wird nur exakt die definierte Version 2.4.1 zugelassen. Man könnte auch ein Intervall angeben, sodass man insgesamt folgende Möglichkeiten hat:

  • [2.4.1] – exakt diese Version
  • (2.4.1] – diese sowie ältere Versionen
  • [2.4.1,) – nicht älter als 2.4.1 – (!) Komma ist wichtig.

Falls beispielsweise die letzte Regel [2.4.1,) definiert ist, und man trotzdem eine ältere Version verwendet, kommt es zu folgendem Fehler, wenn man mvn clean install  ausführt:

P.S.Weitere Prüfregeln sind möglich

Nun ja, das Plugin kann deutlich mehr. Es können beispielsweise folgende Regeln definiert werden:

Die ganze Liste mit Standardregeln findet man auf der Maven-Projekt-Seite.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.