2013-11-20 49 views
8

我有項目A,它依賴於我的Eclipse工作區中的項目B和C.Maven:m2eclipse:禁用工作空間分辨率導致工件丟失

有時我希望A使用來自存儲庫的工件B和C而不是工作區中的版本運行。因此,我選擇A,然後選擇'Maven-> Disable Workspace Resolution',以便A使用版本庫中的版本。

然而,當我走在上面的動作,我得到錯誤信息「缺少神器B」,並就A項目的POM文件「缺少神器C」

我試圖清理該項目,我選擇了'Maven |更新'選項'強制更新的罐子/版本'選中。這些都不能解決問題。

我是否正確使用'Maven-> Disable Workspace Resolution'?


附加信息:這些項目的確切版本存儲在存儲庫中。事實上,如果我關閉項目B和C在工作區中,項目A愉快使用B和C的存儲庫版本

+0

爲什麼在標題中爲[tag:subclipse]標記和Subclipse:爲什麼你認爲Subclipse涉及? –

+0

因爲「禁用工作區分辨率」是Subclips插件的一個功能。 –

+0

它不是 - 它是m2eclipse(Maven)插件的一個特性。 –

回答

5

您需要有項目B和C安裝在您的本地平方米倉庫具有確切的版本爲他們在項目A.

+1

我知道。這些項目的確切版本存儲在倉庫中。事實上,如果我關閉工作區中的項目B和C,項目A會愉快地使用B和C的存儲庫版本。 –

+0

在我們的環境中,m2eclipse行爲與user2295633提到的相同 – sgalenski

0

這似乎是一個已知問題的pom.xml的(如果不是bug)引用畢竟:troubleshooting-missing-artifact

我有一個類似的設置(Web項目A依賴於JAR項目B),所以我嘗試,因爲它在上述鏈接中描述了重現:

projectA和projectB。
這兩個項目都使用Maven。
projectA應該對projectB有依賴關係。
使用兩個項目設置Eclipse工作區。
右鍵單擊projectA並轉到「Maven ==>禁用工作空間分辨率」
清理/更新/重建項目。
您收到「Missing Artifact」錯誤消息。

在我的情況下,這不會發生。只有如果我然後去我的本地存儲庫並手工刪除包含我的項目的目錄,然後做一個maven更新。

我不知道它是否是eclipse版本,但我正在研究: 適用於Web開發人員的Eclipse Java EE IDE。 開普勒服務版本2 版本ID:20140224-0627

0

我不明白爲什麼zlinks引方向重現錯誤,但不是實際的解決方案(至少爲我工作)。所以......

在庫視圖(窗口==>查看==>其他的==>的Maven 庫),你應該專注於unsynched庫(我的是 本地倉庫),然後右鍵單擊選擇 「重新索引」

這做到了。