2012-12-24 70 views
5

我有一個打包爲war文件(包括幾個jar文件)的Web應用程序。 我注意到,當我運行mvn install時 - 編譯的唯一項目是那些已經更改的項目 - 那麼它會替換war文件中的這些jar何時使用mvn clean install而不是mvn install?

如果是這樣 - 什麼時候應該使用mvn clean install而不是簡單地使用mvn install?

我想如果我改變任何資源比我不得不使用mvn乾淨安裝 - 我是對嗎?

如果我是對的,那麼每當我只改變班級時,是否安裝好mvn?

回答

6

大多數情況下,執行清理的唯一原因是,如果您執行的操作會刪除或重命名輸出目錄中的類或資源,如重命名.java文件或更改生成類的某些內容以生成它們用不同的名字。在這些情況下,舊的類或資源文件將仍然存在於輸出目錄中,並可能導致奇怪的行爲。

除此之外,只要使用安裝,你會沒事的。然後,Maven將只構建需要構建的內容以使輸出目錄保持最新狀態。

+0

是否mvn安裝重建整個模塊jar或只是重新編譯和替換jar中的唯一更改的java類 –

+0

Maven有一個[標準生命週期](http://maven.apache.org/guides/introduction/introduction-to-the -lifecycle.html),它遵循構建。該生命週期的一部分是編譯自上次編譯以來尚未編譯或已更改的所有源文件。之後,一個軟件包將從內置的源代碼構建。舊的JAR文件不會被重複使用,但打包時間最短。 –

0

當您想從頭開始構建項目時使用clean。如果你的構建不需要花費很多時間,那麼每次運行構建時都要使用clean。否則,這取決於你。

如果您不確定是否確實更新了一切,那麼一定要這樣做。

+0

我的構建需要很多時間 - 這就是爲什麼我只想安裝mvn。 – Noam

相關問題