2010-04-23 31 views
1

是否有一個maven命令可以驗證WAR文件是否有效並且沒有損壞?還是有其他一些程序或技術來驗證zip文件?我在Ubuntu 9.10上,所以Linux解決方案是首選。mvn安裝後檢查損壞的war文件

有時,在我的項目上執行mvn cleanmvn install後,我最終得到一個損壞的WAR文件。如果我將WAR文件解壓縮到硬盤驅動器,則會發生錯誤,並且文件不會被解壓縮。我相信這發生在我的系統處於內存不足的狀態時,因爲這種情況往往只在大量內存被使用時纔會發生。重新啓動後,執行mvn install總是會提供有效的WAR文件。

因爲這種情況很少發生,所以我通常不會通過解壓縮來測試文件。我將50MB war文件傳輸到我的服務器,然後以它作爲根webapp重新啓動Jetty。但是當文件損壞時,我得到一個java.util.zip.ZipException: invalid block type錯誤。

所以我正在尋找一種快速的方式來驗證文件,一旦mvn安裝完成。有沒有一個maven命令來做到這一點?任何其他想法?

+0

你在64位上運行嗎? – krosenvold 2010-04-24 06:38:46

+0

@krosenvold:是的,我正在運行64位。你爲什麼要問? – Tauren 2010-04-25 10:35:38

+0

升級是否有幫助? – krosenvold 2010-05-11 10:41:25

回答

0

您可以嘗試添加一個步驟,調用antrun插件對輸出WAR執行<unzip>到臨時文件。

1

您可以使用此dependency plugin。我會考慮實施集成測試(在servlet容器中開始戰爭並做一些冒煙測試)。

+0

我會看看依賴插件。感謝您的建議!我最終還會進行集成測試,但還沒有完成。 – Tauren 2010-04-25 20:45:23

3

您的腐敗可能是由於PLXCOMP-149。如果你壓制了war插件附帶的plexus-io版本,並將其替換爲新發布的1.0版本,那麼問題可能會消失。

我知道我沒有回答你的問題,但我可能會解決你的問題。添加依賴關係

<groupId>org.codehaus.plexus</groupId> 
<artifactId>plexus-io</artifactId> 
<version>1.0</version> 

要將戰爭插件的plugin部分。

+0

謝謝,我會試試看。 – Tauren 2010-04-25 20:45:00

+0

並告訴我是否有幫助;) – krosenvold 2010-04-25 20:55:29