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

Fehlerteufel ade!

Marcel Hallmann


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-ProjektMaven 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 Artefakt für das Release vorbereitet; in der Performing-Phase findet das eigentliche Release statt. Phase 1: mvn release:prepare. In der ersten Phase, dem Preparing, werden folgende Aktionen durchgeführt:

Entfernen des –SNAPSHOT-Suffixes von der Versionsnummer im pom.xml des zu releasenden ArtefaktsAusgabe einer Warnung, falls im pom....

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

Fehlerteufel ade!

Marcel Hallmann


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-ProjektMaven 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 Artefakt für das Release vorbereitet; in der Performing-Phase findet das eigentliche Release statt. Phase 1: mvn release:prepare. In der ersten Phase, dem Preparing, werden folgende Aktionen durchgeführt:

Entfernen des –SNAPSHOT-Suffixes von der Versionsnummer im pom.xml des zu releasenden ArtefaktsAusgabe einer Warnung, falls im pom....

Neugierig geworden?


    
Loading...

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