2015-08-14 6 views
5

Ich verwende einen Jenkins-Server als CI. Ich benutze einen Maven-Docker, um die Maven-Aufgaben auszuführen. Also hier ist mein Problem und meine Zweifel.Wie Maven Optionen für die Freigabe oder Snapshot

Mit Jenkins benutze ich das Maven-Plugin, um die Maven-Aufgaben zu konfigurieren und zu kompilieren. Wenn ich Build erstellen möchte ich die Build mit Parametern, wenn ich einen Snapshot oder Release erstellen möchte ich die ausführen Maven Release ausführen und hier kann ich die Version angeben.

Aber mit docker ist komplizierter, weil ich Argumente für den mvn-Befehl verwenden müssen. Also:

Wie lege ich Optionen zum Erstellen einer Release oder Snapshot-Version fest?

Ich habe die Datei settings.xml mit meiner Nexus-URL und auch mit dem Benutzer/Passwort, aber die Probleme verwenden es mit Andockfenster.

Ich benutze docker.io/maven Bild.

+0

Ok, ich möchte dies mit einer Befehlszeile tun. Ich muss eine Freigabe und Vergangenheit automatisieren, um die newReleaseVersion und NextSnapShotVersion Parameter zu maven. – Robert

Antwort

0

Wenn Ihre Version mit -SNAPSHOT endet, wird sie automatisch als Snapshot von Maven betrachtet. Ansonsten gilt es als eine Release-Version.

Dann kann es andere Optionen geben, wie Testen, Debuggen, Code-Analyse, aber es ist ziemlich schwierig, ohne Hände auf das Projekt zu wissen.

[Update] Jenkins scheint eine Menge checkings für die Release-Version zu tun, wie hier beschrieben: http://labs.bsb.com/2014/02/better-maven-releases-with-jenkins/

+0

Nun, ich habe einen Zweifel: In Jenkins, wenn Sie *** Perform Maven Release *** Plugin verwenden, können Sie beide definieren: Release-Version und Snapshot-Version (Development Version). – Robert

1

Maven behandelt Releases und Snapshots auf der Versionsnummer basiert, nicht auf der Grundlage der Befehlszeilenargumente.

Es gibt einen maven-release-plugin, der die Arbeit automatisieren wird, die erforderlich ist, um einen Build freizugeben; Sie benötigen jedoch wahrscheinlich Hintergrundinformationen, bevor Sie sie verwenden.

Um "ein Release zu erstellen", checken Sie eine pom.xml ein, die keinen "-SNAPSHOT" Bezeichner hat (so haben Sie eine Versionsgeschichte des Quellcodes) und dann bauen Sie das Plugin mit dem "mvn deploy "Befehl (vorausgesetzt, Ihre pom.xml ist vollständig konfiguriert, was wahrscheinlich nicht der Fall ist). Dann würden Sie die "next" -SNAPSHOT-Version einchecken und jeder würde mit der nächsten Snapshot-Version fortfahren.

Wenn das klingt wie eine Menge Arbeit, denken Sie daran, dass all dies durch das maven-release-plugin automatisiert wird. Das bedeutet, dass die Arbeit einmal ausgeführt wird und jede nachfolgende Freigabe automatisiert wird. Dies verringert die Wahrscheinlichkeit menschlicher Fehler bei der Freigabe und beschleunigt die Geschwindigkeit des Freigabevorgangs. Es lohnt sich, die ersten Schritte zu unternehmen.

Es wird dringend davon abgeraten, eine Nicht-SNAPSHOT-Nummer mit dem Befehl "mvn deploy" zu erstellen, da die Binärdateien sowohl von der Versionsnummer als auch vom Zeitpunkt der Erstellung abhängig sind.

Verwandte Themen