2012-08-11 34 views
0

我有一個Jenkins/Hudson CI服務器,託管在專用服務器上(善意由其他人託管)。我們來到這裏,這是我們解決不了的問題,而需要從誰可能知道解決方案的人幫助:Jenkins/Hudson Java.IO錯誤無法清理工作區 - Windows服務器

當我們試圖運行構建,我們得到了一個構建失敗,並

java.io.IOException: Unable to delete C:\Program Files (x86)\Jenkins\jobs\JumpPorts-2\workspace 

詹金斯能創建文件,所以它可以刪除它們?它作爲一種服務運行,它從GitHub克隆源代碼(Maven-Java)。這是在Windows服務器上。我在我的VPS(Centos5)上測試過它,它工作正常,但是由於它是VPS,Java不能很好地與我的其他服務一起運行,所以我無法在那裏託管它。

完全錯誤:http://pastebin.com/0tWVVdiH

在此先感謝

+0

可能重複的[Jenkins作業失敗,「java.io.IOException:無法刪除...」,調試sugesstions?](http://stackoverflow.com/questions/6041968/jenkins-jobs -failed-with-java-io-ioexception-unable-to-delete-sugesstion) – 2012-08-12 08:20:06

回答

0

最有可能你正在使用Maven項目類型。

Maven項目類型可以在構建和訪問GUI之前解析磁盤上的pom。因此,當在Windows上構建時,窗口的嚴格版本的文件鎖定可能會阻礙,從而將文件標記爲正在使用,直到發佈絕對的每個文件句柄。

減少這個問題的一種方法是讓Windows構建在從節點而不是主節點上運行(請注意,從節點可以是同一臺物理機器,但因爲遠程處理通道需要查看從節點的文件系統,文件句柄可能不是什麼大問題)

減少此問題的另一種方法是切換到具有Maven構建步驟的FreeStyle項目。請注意,我的個人偏好是避免Maven項目類型的死亡之痛。 ;-)

+0

感謝您的幫助。我們最終刪除了Jenkins,並開始全新安裝。在Java重新安裝了一點麻煩後,我們得到了它的工作。我們將它安裝在C:\ Jenkins \這次,而不是C:\ Program Files(x86)\ Jenkins \我認爲這可能會導致某種形式的權限問題。但它現在已經啓動並正在運行。感謝您的幫助:)(我們也在同一臺機器上使用slave) – 2012-08-13 20:31:44

+0

Java不喜歡路徑名中的空格。另一個問題是Windows不喜歡很長的路徑。您可以創建它們,但刪除它們可能會變得棘手,所以可能會出現一條很長的路徑(8 \ segments \和/或256個字符IIRC)阻止了文件夾的清理。移動到一個較短的路徑刪除1段和24個字符,並可能偷偷溜進窗戶下面(沒有雙關語意圖) – 2012-08-14 08:05:38

相關問題