2016-08-09 174 views
0

Ich habe ein Projekt mit Maven mit TFS für die Quellcodeverwaltung und Octopus für die Bereitstellung erstellt.Maven Versionierung & Repositories - Wie man während des Builds aktualisiert

Im Moment kann ich einen TFS-CI-Build erstellen, ein Octopus-Bereitstellungspaket als Zip-Datei aus der Ausgabe erstellen und Octopus für die Bereitstellung in meinem Bereitstellungsziel verwenden, das Paket extrahieren und die App installieren.

Was ich tun möchte, ist die Version der Anwendungsprojekte zu inkrementieren, wenn ein neuer Build durchgeführt wird (vielleicht nächtlich).

Ist der richtige Weg, dies zu tun, um meinen Build-Server auf die neue Version im Projekt zu setzen, mit mvn versions:set -DnewVersion=x.y.z dann mvn deploy ausführen, um die aktualisierten Pakete auf das Netzwerk-Repository zu schieben. Dann um daraus endlich mein Maven-Paket zu erstellen?

Ich bin ein wenig unsicher, die beste Möglichkeit, meinem Build-Server zu ermöglichen, die Versionen zu veröffentlichen und dann diese aktualisierten Versionen der Pakete im Build zu verwenden.

Es scheint, als hätte ich hier das falsche Ende des Stocks. Alle Hinweise sehr geschätzt.

+0

Welche Maven-Version verwenden Sie? – khmarbaise

+0

@khmarbaise Ich verwende 3.1.1 – dougajmcdonald

+0

Warum möchten Sie die Version bei jedem Build erhöhen? Mit SNAPSHOT's oder? Wie kann man die Versionsinformationen von TFS nicht in MANIFEST-Dateien einfügen, um Dateien auf dem Server usw. eindeutig zu identifizieren? – khmarbaise

Antwort

0

Wenn Sie bereits Maven 3.2 oder besser Maven 3.3+ hatten, hätten Sie das bequemer machen können, aber wenn Sie Maven 3.1 sind. Sie müssen über build-helper-maven-plugin und versions-maven-plugin gehen Sie einfach über tun können:

mvn build-helper:parse-version versions:set \ 
    -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}\${parsedVersion.nextIncrementalVersion} \ 
    versions:commit 

Aber soweit ich die Versionen wissen: begehen wird wahrscheinlich nicht auf die Unterstützung von TFS für Maven SCM Basis der Arbeit .... (I habe es nie mit TFS getestet). Aber der Commit-Schritt muss von etwas anderem gemacht werden.

+0

Das war meine Sorge auch, die Freigabe: prepare Befehle funktionieren nicht für eine Reihe von Problemen, vor allem, dass die Pfadeinstellungen für Maven durch TFS keinen Sinn machen (so hat es Probleme Dinge zu finden, die ich brauche). Was ich glaube ist, dass die Source-kontrollierten Versionen der POMs eine Version hinter dem sind, was ich von ihnen erwarte. z. Ich bin auf Version 0.1.0 und ich frage mvn, um die Version auf 0,1.1 über Versionen einzustellen: set, scheint dies zu funktionieren, aber wenn es dann versucht zu implementieren, scheint es die vorherige Version 0.1.0 von der Quellcodeverwaltung zu bauen . – dougajmcdonald

+0

Ich denke, ich versuche herauszufinden, was der Build-Server tun könnte (sollte), was die Devs lokal tun müssen und was ich im lokalen (Netzwerk-) Maven-Repo bereitstellen muss (und wann). – dougajmcdonald

+0

Das maven-release-plugin funktioniert nicht mit TFS, weil ich das getestet habe .... Wenn du denkst, dass sie aus irgendeinem Grund dahinter stecken, stimmt etwas nicht. Sie müssen die Pom-Datei auschecken, um sie über Versionen zu ändern: set in TFS .... – khmarbaise