我正在使用maven進行依賴管理的一個相當大的項目。作爲其中的一部分,我們使用Maven配置文件來構建和替換測試/開發/生產環境之間不同的某些屬性文件。Eclipse(STS)/ Maven集成問題
要執行構建,我會執行一個Maven:使用正確的配置文件和mavens反應堆構建,然後按照正確的順序構建項目,並將jar文件存儲在.m2文件夾中,例如域名jar,然後服務jar(jar中包含的領域jar作爲依賴)等等。最終導致戰爭文件與戰爭所需的所有正確的庫一起運行。
當eclipse執行默認構建時,每次保存文件時都會執行默認構建,但jar不是用任何配置文件構建的,只是常規構建。
當我然後將最終的戰爭文件推送到服務器,並且當服務器啓動時(通過eclipse啓動和部署)爆炸時,我得到了lib文件夾中maven打包到war文件中的所有jar,但也日食所建造的所有罐子。
如
lib/
domain.jar (built by eclipse)
domain.SNAPSHOT.1.0.jar (built by maven)
etc
有什麼辦法來防止這種情況的發生?這最終會導致每個屬性文件中有兩個文件,並且只有加載順序決定了使用哪個文件。在不同的環境中使用不同的屬性是一件很麻煩的事情。
您是否已將項目作爲Maven項目導入到Eclipse中? Build on命令行可以正常工作嗎?您正在使用「mvn install」而不是第一個「mvn clean package」... – khmarbaise 2012-01-05 15:30:51
您是否在您的POM中的多個位置定義了finalName屬性? – Perception 2012-01-05 15:31:09
我的完整Maven構建目標是:clean install -PprofileTest。檢查Tomcat爆炸戰爭中的jar文件上的時間修改日期指出domain.jar的構建方式是10.00,domain.SNAPSHOT.1.0.jar的構建方式是10.06(我的完整構建和部署需要我估計6分鐘)。這不是一個maven問題,因爲它是eclipse試圖解決依賴關係並將它自己的jar版本推送到服務器,我想。 – 2012-01-05 15:53:53