Das Erzeugen und Verteilen eines Projektes kann/ist in den Lifecyclephasen verankert. Folgende Lifecycleaufrufe unterstützen bei der Verteilung des Projekts:
Wenn Projekte in einer aktiven Entwicklungsumgebung entworfen und umgesetzt werden kommt es häufig vor, dass man auf Schnappschüssen des aktuellen Projekts arbeitet. Schnappschussversionen sind im POM durch den String ”SNAPSHOT” gekennzeichnet. Um ein aktuelles Release des Projekts zu erzeugen, kann das Release-Plugin von Maven verwendet werden. Durch Konfiguration des Versionskontrollsystems im POM wird dem Release-Plugin mitgeteilt, wo die aktuellen Sourcen des Projekts liegen.
Durch den Aufruf von mvn release:prepare wird zunächst sichergestellt, ob die
aktuelle Version des Projekts bereits eingecheckt wurde. Ist dies nicht der Fall,
bricht Maven den Vorgang ab. Handelt es sich um ein gültiges Release, wird die
Schnappschussversion in eine Release Version überführt. Die Angaben im POM
zum VCM werden auf das aktuelle Release Verzeichnis gesetzt. Es werden alle
Tests für das Projekt aufgerufen um sicherzugehen, dass das Projekt arbeitet. Die
Änderungen am POM werden commited. Ein neuer Tag im VCM wird für das
Release erstellt. Eine neue Schnappschussversion wird gesetzt und ein neues POM
wird angelegt. Durch Interaktion mit dem Benutzer werden TAGS die im VCM
gesetzt werden sollen, die Release Version und die neue Schnappschussversion
abgefagt.
Mit dem Aufruf von release:perform wird das aktuelle Release aus dem VCM bezogen,
dann erzeugt und letztlich im lokalen und/oder konfigurierten externen Repository
veröffentlicht und deployed.