2012-02-08 84 views
3

我現在試圖將近2天才能獲得發佈插件與maven和哈德遜運行。我現在安裝了一個svn客戶端(不知道爲什麼我需要這個,因爲Hudson有一個SVN插件),並且該插件能夠運行「mvn」命令。Hudson Maven發佈顛覆

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project framework: Unable to check for local modifications Provider message: The svn command failed. Command output: svn: E155036: Please see the 'svn upgrade' command svn: E155036: Working copy 'C:.hudson\jobs\Project 1\workspace' is too old (format 8, created by Subversion 1.4)

我在做什麼錯在這裏:現在重新啓動Hudson和我收到以下錯誤的作業後?看起來我正在使用這個插件,因爲我正在從一個錯誤進入另一個錯誤。

感謝您的幫助!

回答

2

SVN中的工作副本基於您使用的svn客戶端的版本。隨着時間的推移,這些可能是不兼容的(這是可以的,因爲他們總是給你一個容易升級的系統,通常這會自動發生),然而從sVN v 1.4到最新的(1.7)不會給你通常的自動升級的可愛。事實上,使用svn 1.4來完成原始結算可能是一個糟糕的主意,因爲這是古老的。

所以,你需要找出原來結帳的內容。如果它的插件,然後轉儲它。我不認爲目前的Hudson版本有這樣一個老svn客戶端,即使他們還沒有升級到1.7,它至少在1.6.x上。

檢查maven插件,看看它是多大,以及svn插件(和你的哈德森安裝)。

0

您在本地運行的Subversion for Windows客戶端的版本可能是您的TortoiseSVN的更高版本...搜索Sourceforge以查找舊版本的「Subversion for Windows」。

+1

我不確定你在問題中看到了TortoiseSVN,但是TortoiseSVN不起作用,因爲'maven-release-plugin'需要一個可用的*命令行* SVN客戶端。 – 2012-02-08 21:41:49

2

剛剛在Jenkins處理Maven發佈時,我感覺到你的痛苦。

其他人已經回答了您的問題:您需要確保所有使用相同工作副本的SVN客戶端都是相同的版本。

但回答,爲什麼你需要一個命令行SVN客戶端的元問題,這是因爲maven-release-plugin不只是從SVN拉數據下來,它實際上有提交標籤修訂,並哈德森沒有提供這方面的機制。此外,maven-release-plugin不能依賴於哈德森提供的東西,因爲Maven在許多其他哈德森不可用的環境中(例如,從命令行)使用。

如果你的問題實際上是爲什麼maven-release-plugin不能使用純Java SVN客戶端而不是依賴命令行客戶端,那麼答案是這是因爲許可問題(the SVNKit library can't be distributed under the ASF license)。但是,您可以使用一個名爲maven-scm-provider-svnjava的實現。我沒有嘗試過,所以YMMV。