2011-03-25 86 views
0

看來,程序集插件(或jar/war插件)是愚蠢的。 無論什麼時候什麼都沒有做,他們無法想象。Maven-assembly-plugin&incremental build

如果所有依賴項的依賴項都比目標版本舊,那麼基本的「Makefile」不會重新編譯目標。

對於maven來說,看起來包裝是「一直都在」完成的! 如果我做了「mvn package」然後「mvn integration-test」,Maven會一次又一次地處理這些軟件包。 由於我建立了一些脂肪獨立的罐子:它需要一段時間!

這是否也適用於您的方式,或者是否存在某些配置中損壞的東西。

預先感謝您的幫助,
拉斐爾

回答

0

在Maven中存在它是通過每次調用一個階段時間運行Life-Cycle

mvn integration-test 

意味着運行集成測試之前的所有階段(包括集成測試本身),其中包括您的情況下的包階段。此外,您不應該調用集成測試,因爲後集成測試不會在這種情況下運行。您應該調用mvn驗證。 從上面的結果是你應該簡單地調用mvn集成測試,包階段將自動運行。 Maven不是Make。

+0

很好,但是,對我來說,這對我來說是一個麻煩,Maven會再次打包一個最新的包。 這應該是構建工具的第一個特性:是漸進式的,只處理必要的。 這是編譯階段的情況,它檢查類是否是最新的。我不明白爲什麼它不應該是相同的包裝。 另外,有些情況下我想再次啓動我的集成測試套件,而不編譯或打包任何東西:例如,當我在遠程測試SQL服務器上更改測試數據時。 – 2011-03-25 14:13:02

+0

嗯..你寫了你在遠程SQL服務器上更改了你的測試數據......但是你爲什麼不把這些數據放到你的maven項目中並且讓它通過集成測試來實現......這個想法就是構建並自動測試)而無需手動步驟。另一方面,看看是否必須更新軟件包並不是那麼簡單,而且某些軟件包格式不支持軟件包內的文件更新。在我腦海中出現的其他事情是:你有大罐子......可能你應該考慮更小的模塊。 – khmarbaise 2011-03-26 13:36:07