2016-05-20 13 views
0

Freigabe Wir haben in diese Frage ein paar Mal laufen:überflüssig Stamm Unterordner in SVN-Tag erstellt, wenn mit Maven aus Bambus

Statt eine Version des Stammes enthält, für die Freigabe geändert, enthält der markierte Ordner eine Kopie der Stamm vor jeder Änderung, und es enthält auch einen 'Trunk' Unterordner, wo die richtige modifizierte Version ist.

Deshalb, wenn ich dies in meinem SVN Repo haben vor der Freigabe:

  • Projektname
    • Stamm (Version in pom.xml ist 1.0.0-Snaphot)
    • Tags

Normalerweise hätte ich nach der Veröffentlichung der Version 1.0.0:

  • Projektname
    • Stamm (Version in pom.xml ist 1.1.0-SNAPSHOT)
    • Tags
      • 1.0.0 (Version in pom.xml ist 1.0.0)

jedoch sehr wenige Male, ich liquidiert mit:

  • Projektname
    • Stamm (Version in pom.xml ist 1.1.0-SNAPSHOT)
    • Tags
      • 1.0.0 (Version in pom.xml ist 1.0.0-SNAPSHOT)
        • Stamm (Version in pom.xml ist 1.0.0)

Die 'scm' Tag in der pom.xml vor dem Loslassen scheint richtig, so dass ich glaube nicht, wenn von dort kommt:

<scm> 
    <url>http://.../projectName/trunk</url> 
    <connection>scm:svn:http://.../projectName/trunk</connection> 
    <developerConnection>scm:svn:http://.../projectName/trunk</developerConnection> 
</scm> 

Mein Bambus-Plan ist bestehend aus folgenden Aufgaben:

  1. Quellcode-Checkout (mit Force Clean Build)
  2. Script
  3. Maven 3.x (tatsächliche Release)

Mein Maven 3 (die Release-Version bestimmen).x Aufgabe hat folgendes Ziel:

--batch-Modus -Dusername = $ {} bamboo.username -Dpassword = $ {} bamboo.password -Dtag = $ {bamboo.version} release: Vorbereitung -DreleaseVersion = $ {} bamboo.version -DdevelopmentVersion = $ {} bamboo.nextVersion -snapshot -Dresume = false release: führen

Das Plugin hat keine Optionen:

<plugin> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.4.1</version> 
</plugin> 

in den Protokollen überprüft haben, Ich kann nichts abnormales sehen, um die Ursache zu bestimmen.

[LOG] Checking in modified POMs... 
[LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB && svn --username user --password '*****' --no-auth-cache --non-interactive commit --file .../temp/PROJECT-PLAN-JOB/maven-scm-386932260.commit --targets .../temp/PROJECT-PLAN-JOB/maven-scm-7155492065832691877-targets 
[LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB 
[LOG] Tagging release with the label 1.0.0... 
[LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB && svn --username user --password '*****' --no-auth-cache --non-interactive copy --file .../temp/PROJECT-PLAN-JOB/maven-scm-80256020.commit --revision 46345 http://.../projectName/trunk http://.../projectName/tags/1.0.0 
[LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB 
[LOG] Transforming 'projectName'... 
[LOG] Not removing release POMs 
[LOG] Checking in modified POMs... 
[LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB && svn --username user --password '*****' --no-auth-cache --non-interactive commit --file .../temp/PROJECT-PLAN-JOB/maven-scm-1254735614.commit --targets .../temp/PROJECT-PLAN-JOB/maven-scm-2179675177497779390-targets 
[LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB 
[LOG] Release preparation complete. 
[LOG] 
[LOG] --- maven-release-plugin:2.4.1:perform (default-cli) @ projectName --- 
[LOG] Checking out the project to perform the release ... 
[LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB/target && svn --username user --password '*****' --no-auth-cache --non-interactive checkout http://.../projectName/tags/1.0.0 .../build-dir/PROJECT-PLAN-JOB/target/checkout 
[LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB/target 
[LOG] Invoking perform goals in directory .../build-dir/PROJECT-PLAN-JOB/target/checkout 
[LOG] Executing goals 'deploy'... 

Von dem, was im Protokoll zu sehen ist, die Ausführung ist:

  1. Die Version in der pom modifiziert wird, um die -snapshot zu entfernen (1.0.0)
  2. Dieser pom ist verpflichtet in die Stamm
  3. der Inhalt des Rumpfes in den Tag kopiert 1.0.0
  4. die Version in der pom zur nächsten Version geändert wird (1.1.0-SNAPSHOT)
  5. Dieses pom wird im Kofferraum commited
  6. Der Inhalt des Tags 1.0.0 im Ordner/target/Kasse/
  7. Die Veröffentlichung auf der/target/Kasse erfolgt ausgecheckt/

Gibt es eine Idee, warum der 1.0.0-Tag-Ordner im SVN-Repo dort einen anderen "trunk" -Unterordner enthält?

Antwort

1

Nach Untersuchung habe ich herausgefunden, dass dies wegen des Maven-Release-Plugins passiert und nichts mit Bamboo zu tun hat. In der Tat, sobald Sie versuchen, eine Version zu veröffentlichen, die bereits veröffentlicht wurde, wird dies passieren.

Dies ist das "normale" Verhalten des Plugins.