Standardisierte und kontrollierte Softwarereleases mit dem Maven-Release-Plug-in

Fehlerteufel ade!


Jeder Java-Entwickler, der schon einmal ein Maven-Projekt releasen musste, kennt diese Fragen: Welche Versionsnummer soll ich dem Artefakt geben? Habe ich daran gedacht, einen Tag im Repository anzulegen? Wurde das Artefakt im Maven Repository deployt? Sind nach dem erfolgreichen Release sämtliche „pom.xml“ wieder aktuell?

Solche und weitere Fragen tauchen immer wieder auf, wenn im Laufe der Entwicklung der aktuelle Stand der Software in Form eines Releases festgehalten werden soll. Beispiele dafür sind das regelmäßige Bereitstellen der neuesten Features oder auch die Übergabe der Software an ein Testing-Team. Besonders bei Multi-Module-Projekten (Kasten: „Maven-Multi-Module-Projekt“) hat sich der manuelle Releaseprozess als mühselig, aufwändig und fehleranfällig erwiesen, da es leicht vorkommen kann, dass einzelne Schritte, wie die Pflege der pom.xml, das Taggen etc., vergessen oder unvollständig ausgeführt werden. Abhilfe schafft das Maven-Release-Plug-in [1]. Mit dessen Hilfe lassen sich diese Fragen leicht beantworten bzw. wiederkehrende Probleme aus dem Weg räumen. Der Entwickler wird hier durch einen interaktiven und standardisierten Releaseprozess geführt und kann sich auf die Beantwortung der gestellten Fragen konzentrieren. In den folgenden Abschnitten werden die Kernaufgaben des Plug-ins vorgestellt, und es wird ein kurzer Überblick gegeben, wie es einzubinden und zu konfigurieren ist. Abschließend werden wir anhand eines kurzen Beispiels einen vollständigen Releasezyklus durchlaufen und so die Funktionsweise anschaulich beschreiben.

Maven-Multi-Module-Projekt

Maven kennt das Konzept hierarchisch strukturierter Projekte, die Multi-Module-Projekt genannt werden. Dabei können unter anderem Informationen aus dem Parent-pom.xml an die Kind-pom.xml vererbt werden (typischerweise allgemeine Informationen wie das Dependency Management). Der Clou an einem Multi-Module-Projekt ist, dass Maven-Kommandos (z. B. $mvn package, $mvn release) nicht auf jedem Modul getätigt werden müssen, sondern nur auf der höchsten Ebene (d. h. auf Ebene des Parent-Projekts). Maven führt das Kommando dann selbständig auf allen Kindern aus. Zusätzlich wird dafür gesorgt, dass die Module in der richtigen Reihenfolge gebaut und allfällige Kreisbeziehungen von Dependencies erkannt werden.

Features

Das Release eines Artefakts mithilfe des Maven-Release-Plug-ins erfolgt in zwei Phasen („Preparing“ und „Performing“): In der Preparing-Phase wird, wie der Name schon sagt, das Artefak...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang