2011-11-03 54 views
1

我今天嘗試切換我們的發佈版本,以便它使用分支機構。我的改變之前,我只是做了maven發佈:分支 - 在哪裏執行?

mvn release:prepare -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -Dtag=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$NEXT_DEV_VERSION 
mvn release:perform 

現在我改爲使用

mvn release:branch -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -DbranchName=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$NEXT_DEV_VERSION -DautoVersionSubmodules=true -DbranchBase=$SVN_BRANCH_BASE -DdryRun=false -DsuppressCommitBeforeBranch=false -DremoteTagging=false -DupdateBranchVersions=true -DupdateVersionsToSnapshot=false -DupdateWorkingCopyVersions=true -DgenerateBackupPoms=false 

然後我出去檢查了分公司,並試圖在其上進行發佈。但是,這並不工作,它告訴我: 無法配置SCM倉庫:沒有這樣的提供商:「S」

SCM配置爲:

<scm> 
<connection>scm:svn:https://svn2.mycompany.com:8443/svn/polyalert/branches/02_Los_1/releases/0.01.9</connection> 
<developerConnection>scm:svn:https://svn2.cmycompany.com:8443/svn/polyalert/branches/02_Los_1/releases/0.01.9</developerConnection> 
<url>https://svn2.mycompany.com:8443/svn/polyalert/branches/02_Los_1/releases/0.01.9</url> 
</scm> 

此URL可能看起來有點怪,但我們做的沒有默認佈局,並且這是正確的分支URL。

這是用maven 3完成的。我不確定是否正確執行發佈操作:在另一個位置執行,而不是發佈:branch,但我沒有更好的主意,具體原因是因爲我無法設置任何release.properties文件,如使用release:prepare創建的那樣。或者是否有必要進行發佈:分支和發佈:準備?對此的第一次嘗試沒有奏效,並得到相同的錯誤。

有什麼建議嗎?

感謝 邁克爾

+0

好的,特別是在我的情況下,我發現在trunk的root pom中確實存在配置錯誤的SCM URL。這讓我很想知道,因爲該分支顯示的root pom scm條目是正確的,但這是我遇到的問題。 – mkraemerx

回答

1

經過大量的奮鬥,我發現下面的方法工作:

  • 確保你的軀幹已在POM絕對正確的供應鏈管理信息。
  • run mvn release:branch -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -DbranchName=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$NEXT_DEV_VERSION -DautoVersionSubmodules=true -DbranchBase=$SVN_BRANCH_BASE -DupdateWorkingCopyVersions=true。 這將在SVN中創建一個分支,其中所有版本都保持不變,就像它們在trunk中一樣,然後將trunk中的版本號增加到$ NEXT_DEV_VERSION並提交。也可以在插件配置中設置Branchbase(在這裏可以省略)。

  • 結帳新發分支,變成當地分支機構DIR

  • 運行mvn release:prepare -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -Dtag=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION更新版本號在你的分支$ RELEASE_VERSION(將在本地+更改提交到分支通過這個單一的命令)。該命令將在頂部創建一個發佈標籤。
  • 在您本地的分支目錄中運行mvn release:perform開始實際構建。這將檢出在前面的步驟中創建的標籤並建立在此代碼上。