2012-05-11 6 views
7

Kann ich die Werte des Parameters von SCM für Jenkins übergeben?Übergabe von SCM-Tag-Werte durch einen Parameter von Jenkins

in meinem pom.xml, ich habe die als Standardwert gesetzt:

<scm> 
    <connection> scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_A/ </ connection> 
    <developerConnection>scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_A/</developerConnection> 
</ scm> 

Das Problem ist, wenn ich mit einem anderen Zweig laufen und will eine Freigabe durch jenkins auszuführen (innerhalb des Freigabeprozesses, es generiert das Tag des Projekts) es wird immer den Wert erhalten, der in pom definiert ist.

Ich würde einen neuen Pfad in einem speziellen Parameter bei Jenkins übergeben, die automatisch in scm Pom-Projekt festgelegt wird.

Ich habe einige Tests durchgeführt, indem ich einen String-Parameter in einem parametrisierten Gebäude gesetzt habe, aber er hat die gegebenen Parameter und Fehler in der Konstruktion nicht erkannt.

Ein anderer Weg war durch die „Release Ziele und Optionen“ zu übergeben:

-X -Dresume=false release:clean release:prepare release:perform \ 
    -DscmConnection="scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_B"-DscmDeveloperConnection = "scm: svn: https ://172.10.10.30/svn/repPortal/branches/2012/Branch_B "scm: validate 

Der Fehler bestand ...

Caused by: org.apache.maven.shared.release.ReleaseFailureException: 
    Missing required setting: scm connection or developerConnection must be specified. 

Gibt es eine Möglichkeit, dies zu tun, so dass ich sagen kann, von Jenkins?

Antwort

1

Ich bemerkte, dass die für die SCM-Verbindungen definierten Eigenschaften nicht korrekt sind. Die Eigenschaft zum Festlegen der SCM-Verbindung in der Befehlszeile lautet -Dproject.scm.connection. Die Entwicklerverbindung lautet -Dproject.scm.developerConnection.

+0

Also habe ich die folgende Anweisung in meinem Jenkins versucht, aber es ändert nicht das in meiner pom.xml definierte SCM-Tag: -X -Dresume = false release: clean release: Vorbereitung release: perform -Dproject.scm.connection = scm: svn: https://172.10.10.30/svn/repPortal/branches/2012/Branch_B -DProject.scm.developerConnection = scm: svn: https: //172.10.10.30/svn/repPortal/branches/2012/Branch_B Gibt es eine andere Möglichkeit, die Einstellungen neu zu schreiben? – ricardo

+0

Fügen Sie "-DdryRun = true" ohne "release: perform" in demselben Befehl hinzu. Sehen Sie sich die intermediären POMs an, die Maven erstellt. Sieht einer von ihnen richtig aus? Ziehen Sie in Betracht, diesen dryRun-Befehl in der Befehlszeile ohne Jenkins auszuführen, erhalten Sie das gleiche Ergebnis? Last but not least wurde 'maven-release-plugin' Version 2.3 gestern veröffentlicht, und sie haben ein paar Verbesserungen in Bezug auf SCM vorgenommen, die auch helfen könnten. – user944849

Verwandte Themen