2011-11-22 160 views
4

我有一個「主項目」,它使用幾個「模塊」。這些模塊位於pom.xml中,但我也將模塊的代碼作爲Eclipse中的項目。我在「Properties | Project References」和「Properties | Java Build Path」中都將這些模塊定義爲項目依賴項。我還確保所有Eclipse項目都位於Java Build Path中的「Order and Export」的頂部。在Eclipse,maven的依賴是壓倒一切的項目依賴

主項目是不承認的變化蝕內的模塊。當我按F3查看代碼時,它會從我的.m2目錄打開java源代碼。顯然,它忽略了我的Eclipse項目。我錯過了一些設置?我該怎麼辦?

回答

3

如果你使用Maven的時候,你很可能要承諾的Maven。即使您使用特定於Eclipse的依賴關係配置Eclipse,只要使用Maven更新項目配置,它就會完全重寫配置。

我強烈建議將您的任何其他項目的依賴關係,成可作爲Maven依賴啓用Maven的項目。

在特定情況下(通過使用Maven的模塊),這意味着要確保每個模塊被導入到Eclipse作爲啓用M2E的項目。 m2e將自動連接模塊和其他相關項目之間的依賴關係。

6

您不需要將依賴項目添加到項目引用中(至少在使用m2eclipse插件時),只需將它們作爲依賴關係添加到您的主項目的pom.xml中即可。自從我開始在Eclipse中使用Maven以來,我沒有必要觸摸構建路徑。

確保您已通過右鍵單擊項目根目錄 - > Maven - >啓用工作空間分辨率來啓用插件的Workspace分辨率。如果它顯示「禁用工作區分辨率」,則它已啓用。您可能還需要在同一菜單下運行「更新項目配置」。

通過這種方式,當您在Eclipse中運行主項目時,對其他項目所做的任何更改都將對主服務器「可見」(並且實際上在運行時甚至可以在其他項目中使用熱交換)。

+0

奇怪的是,啓用和禁用工作區分辨率都在主項目的菜單上。我點擊啓用,它重建,但現在打破了一些實際存在於eclipse但不是maven的類。我覺得有些東西真的很糟糕。還有什麼提示? – User1

+0

首先嚐試清潔整個工作區。如果這沒有幫助,而不是猜測在不同項目的配置中可能會出現什麼問題,我會建議如下:從文件 - >開關工作區 - >其他,根據需要複製設置,然後導入所有的使用文件 - >導入... - > Maven - >現有Maven項目將項目投影到新工作區。選擇瀏覽並導航到舊工作區的根目錄,然後單擊確定。選擇所有po​​ms,然後單擊完成。現在,您擁有了一個包含所有項目的「乾淨」工作區,並且希望工作區分辨率能夠即裝即用。 – esaj

+0

這是一個好主意,但它沒有奏效。主項目與模塊有不同的目錄..你認爲這會打破一切嗎? – User1

0

林抓我的頭,爲什麼你需要定義爲您的頂級項目依賴的模塊。你是否試圖避免在模塊級定義(交叉)依賴關係?在任何情況下,按照其他建議,首先把你的依賴關係在正確的地方在你的POM,然後要麼運行

mvn eclipse:clean eclipse:eclipse 

更新您的Eclipse設置,或者更好的是,確保m2eclipse安裝和導入你的Maven項目直接進入IDE。

+1

當前插件稱爲「m2e」,可從默認更新站點獲取。 – Puce

+0

m2e是我上次查看Sonatype網站時m2eclipse的縮寫。 – Perception

+0

這不是一個Sonatype的項目了,它現在是一個Eclipse項目:「Sonatype的已完成項目的m2eclipse的過渡到Eclipse 請去這個網址M2E信息:http://eclipse.org/m2e」 – Puce