2011-10-16 63 views
11

我們使用maven和eclipse。我們有一個多模塊項目,相當大。用maven/eclipse停止自動建築

Eclispe-Maven集成似乎決定何時對構建依賴模塊作出反應,這是一種痛苦。

我打開了自動建築,但似乎沒有做任何改變。

有某些操作,例如:刪除資源或啓動模塊,這會觸發構建另一個模塊。

這種行爲如何轉化?我更喜歡根據需要手動調用maven。

+0

您是否使用自定義構建器?什麼樣的maven集成m2eclise,m2e等? –

回答

9

只需轉到頂欄中的項目,而不要選中「自動構建」。它將停止自動構建項目並節省您的寶貴時間。

3

右鍵單擊您要禁用自動Maven構建的項目,單擊「屬性」,然後從左側導航欄中單擊「構建器」。應該有一個「Maven Project Builder」,您可以取消選中以禁用它。

我不確定這是否正是您要找的。我自己也從來沒有真正像這樣操作過,所以我不能說任何可能遇到的副作用 - 儘管Eclipse本身會警告你:「這是一項高級操作。禁用項目生成器可能有許多方面 - 有影響,繼續?「。

假設您的項目處於某種版本控制狀態,請確保在執行此操作之前,只有您的pom.xml而不是Eclipse .project文件或.settings文件夾在源代碼管理中。 (如果是這樣,一定不要將它們提交回來。)其他團隊可能不希望爲整個組禁用此構建器。 :-)

4

Ziesemer的解決方案確實會停用Maven構建,儘管我認爲當您在Eclipse中執行代碼進行調試或測試時,它會帶來一些相當不受歡迎的副作用。問題在於一些資源不會出現,因爲構建不會按預期運行復制和過濾。如果像我一樣,每次需要運行代碼時都會忘記手動運行Maven構建,這會導致一些不愉快的幻影bug和幾小時的浪費。

關閉不需要的項目 當你有你的項目的工作副本執行

mvn clean install
這將安裝所有依賴於本地資源庫。完成後,只需關閉你不需要的項目,只留下你正在處理的項目。這將迫使maven從本地存儲庫而不是工作空間解決項目。這樣做不會觸發構建依賴關係。

取消激活工作區分辨率 您還可以通過單擊項目並取消激活工作區分辨率來實現類似效果。這將強制maven執行存儲庫解析並繞過構建。但是,如果更改多個項目,則必須確保它們先安裝到本地存儲庫,否則其他項目將不會看到更改。如果不使用SNAPSHOT構建版本,可能還需要手動打開項目才能解決依賴關係。

拆分項目進一步 另一種選擇是將項目拆分爲多個模塊,每個模塊都有自己的模塊。這將創建一個更深的層次結構,它具有自己的負面影響,但它可以讓您在您的環境中只保留一組活動。再次確保您已將其他設置安裝到本地存儲庫,以使分辨率正常工作。

希望這會有所幫助。