2017-03-10 3 views
0

Ich benutze die Maven Release Plugin und ich versuche, jede Version mit meiner Jenkins Build-Nummer zu markieren.Wie setze ich den Tag für Maven Release

ich dies aus pom.xml versucht haben:

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-release-plugin</artifactId> 
     <version>2.5.3</version> 
     <configuration> 
      <tagNameFormat>${env.BUILD_NUMBER}</tagNameFormat> 
     </configuration> 
     </plugin> 

Und von Jenkins auch wenn ich Maven bin Aufruf:

mvn release:prepare -tag=${env.BUILD_NUMBER} 

Aber ich bin immer:

Unable to tag SCM 
[ERROR] Provider message: 
[ERROR] The git-tag command failed. 
[ERROR] Command output: 
[ERROR] fatal: tag 'my-project-1.3' already exists 

Ich bin mir nicht sicher, was 1.3 steht.

Also wie kann ich die Freigabe markieren? Ich mache einen Fehler?

Antwort

2

Ihre pom wahrscheinlich auf Version 1.3-SNAPSHOT

mvn release:prepare 

Wird die Version 1.3 aktualisieren, erstellen Sie den git tag "artifactId-Version" in Ihrem Fall my-Projekt-1.3, stellen Sie dann die Version in Dein Pom zu 1.4-SNAPSHOT für die nächste Iteration.

Um das Problem zu beheben, löschen Sie das Tag, siehe How to delete a git remote tag?, und führen Sie dann mvn release: prepare again aus.

Möglicherweise müssen Sie Ihre Version zurück auf 1,3-snapshot setzen, dies können Sie poms pom/mit

mvn versions:set -DnewVersion=1.3-SNAPSHOT 

Oder einfach bearbeiten erfolgen.

+0

Wenn ich 'mvn release: prepare' mehrmals mache, bleibt die Version '1.3' und wird nicht inkrementiert. Irgendeine Idee warum? – octavian

+1

@octavian Die Version wird nach dem Git-Tag in 1.4-SNAPSHOT geändert, damit der Befehl fehlschlägt, wird dies nicht passieren. –

+0

Kann ich etwas wie 'mvn release: prepare -DnewVersion = $ {env.BUILD_NUMBER}' machen, wobei 'BUILD_NUMBER' die Buildnummer von Jenkins ist? Ich würde gerne eine Version angeben, die von der Jenkins Build Nummer abhängt, aber ich weiß nicht wie. – octavian

Verwandte Themen