2011-02-08 61 views
1

我在64位Windows 7 dell緯度(E6510)上使用maven 2.2.1,jdk 1.6.0_23(64位)。雖然不可重現,但每天我的構建(大型項目,67個artifactIds)運行乾淨時將失敗,因爲無法刪除目錄。我可以更改爲該特定模塊並重新運行乾淨的工作。我可以通過使用-fae(最終失敗)運行來最小化問題。我在windows 7上構建時遇到隨機的maven構建失敗,這是一個Windows問題嗎?

故障並不是因爲我正在查看目標文件。

辦公室中的其他開發人員都沒有遇到此問題。我是運行64位Windows 7

我也從5400RPM到7600rpm改變了我的硬盤只有一個,但我仍然得到了失敗。

我周圍搜索,沒有發現任何說大型maven項目構建和windows 7的固有問題。我發現最接近的是一個老的maven 1 bug(http://jira.codehaus.org/瀏覽/ MAVEN-1733)

我的下一步是在同一臺機器上運行linux。我已經安裝我的機器雙啓動到Windows 7或Ubuntu的,看看我在建立在Ubuntu的時候是否失敗。有什麼我可以嘗試嗎?

回答

3

有兩種可能的解釋;代碼中的某些內容對於文件句柄而言很sl or,或者您遇到64位JVM問題,這是由於Windows文件鎖定比其他環境/虛擬機更明顯。

沒有可以通過鏈接到/從MSHARED-148跟蹤錯誤的集羣,它有後果爲很多插件。

這些問題可以/將你所有的插件升級到最新的版本是固定的,因爲可以發現here。它已在所有核心Maven插件(甚至一些沒有明確鏈接到上述問題)中修復,我無法給你codehaus插件的確切狀態。你也可以考慮切換到最新的maven 3.0.X.

這些問題的一個共同特點是,由於JIT體系結構(64位JVM基本上仍然使用「服務器」體系結構)的差異,它們在64位JVM上的出現頻率更高。它在更大的多模塊構建中變得更糟,因爲JIT編譯器在插入代碼的一些調用之後通常會進一步發揮作用。

+0

我會嘗試從64位切換到32位jdk。我也會看看升級我的插件並運行maven 3.0.x.我會讓你知道事情是如何解決的。 – user608507 2011-02-09 14:38:55

0

這可能與Windows有關,因爲當前正在使用的文件可能不會被刪除。 Linux和其他Unices沒有這個問題。

這就是說,這可能會出現自身,因爲配置問題或某些第三方插件導致問題。

我會用下面的清單:

  • 是否有任何涉及第三方插件?
  • 是否有任何插件不在他們的最新版本?
  • 您能調試並查看哪些文件無法刪除嗎?可能有某種Windows實用程序可以幫助解決這個問題。