2011-03-31 52 views
23

我想第一次使用這個Sonatype Eclipse插件來處理一個現有的(巨大)軟件,我可以用命令行的maven構建。m2eclipse說「失蹤的神器」,但我可以從cmdline構建!

我已經配置了插件,而不是使用內置的Maven 3

在Eclipse中我有25個項目(通過根pom.xml中加載)和其中4個有我的Maven 2.2.1安裝編譯錯誤; Maven的控制檯包含了很多類似線的這一個:

缺少神器共享記錄:共享記錄中:jar:1.0.4:編譯

我在我的庫中的所有的罐子和M2_REPO CLASSPATH變量正確定義。爲什麼插件沒有看到所有的罐子?

這些項目的.classpath文件只是引用「MAVEN2_CLASSPATH_CONTAINER」,沒有一個jar列表。 Eclipse中的pom.xml在缺少的jar文件的第一行顯示錯誤,但我可以從命令行構建!

有什麼想法?我需要幫助!如果我不解決這個問題,我會嘗試遷移到NetBeans。

謝謝。

回答

0

我終於找到了解決方法。這無疑是在m2eclipse的一個錯誤,當我在.m2\repository\opensymphony\quartz\1.6.0\
加入的下quartz-1.6.0.pomquartz-1.6.0.jar然而問題就消失了POM中不存在在http://repo1.maven.org/maven2/opensymphony/quartz/1.6.0/,但你可以從quartz-1.6.0-bundle.jar linket在http://jira.opensymphony.com/browse/QUARTZ-482
這是一個奇怪的解決方案提取它,但它的工作對我的同事的個人電腦也是如此。

+0

我檢查了本地存儲庫,發現quartz-1.6.2.jar但是沒有pom,但是在做了@Jurie說的之後,它解決了我的情況。 – 2011-04-16 06:54:59

0

構建路徑中缺少罐子表明您尚未啓用Maven依賴關係。右鍵單擊項目,選擇Maven,選擇「啓用Maven依賴管理」。這允許M2Eclipse引用你的POM。

+0

啓用依賴管理。 – Pino 2011-03-31 15:49:18

5

right click on your project > Maven > Update Dependencies

然後

right click on your project > Maven > Update Project configuration

假設你m2eclipse插件安裝正確這應該解決的問題。另外,檢查是否有一個選項right click project > Maven > Enable dependency Management選擇。

+2

這兩個更新命令都會再次生成「Missing artifact」錯誤列表。我已經嘗試了我的Maven 2.2.1安裝和內置的Maven 3。 啓用了依賴管理。 是否有任何內部索引不被這些命令更新? 我甚至嘗試從Eclipse Marketplace的插件重新安裝Eclipse Helios SR2:沒有任何更改。 – Pino 2011-03-31 15:45:23

+0

這可能是由內置的Maven3(m2eclipse)和命令行Maven2之間的一些爭鬥引起的,因爲它們共享相同的本地存儲庫'〜/ .m2/repository'。一些臨時解決方案可能是刪除本地存儲庫(或者至少是有問題的工件),讓Eclipse與M2Eclipse插件再次獲取依賴關係。或者將命令行Maven2更新到Maven3。 – 2011-04-07 06:51:04

7

如果在Eclipse中發生上述問題時啓用了依賴關係管理,則可以使用Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management。這通常會刪除pom.xml中的任何依賴性錯誤。

也作爲@Nishant在上面的回答中指出完成項目依賴項後的上述步驟。

+1

禁用/啓用+1對我來說確實有效。 – 2011-04-16 06:55:43

+0

該選項不再存在(至少在我的安裝中),但我可以通過將pom.xml移動到項目文件夾然後將其移回來清除消息。 – 2013-08-20 15:40:47

+0

在老版本的Eclipse上添加Maven nature(例如Indigo)右鍵單擊Project> Configure>轉換爲Maven項目 – Andy 2013-10-18 17:47:40

1

關閉eclipse IDE並重新打開它,應該修復這個問題。

0

沒有其他建議的工作,但以下步驟爲我工作(SpringSource工具套件2.6。1):

  • 備份本地Maven倉庫
  • 刪除庫
  • 項目>的Maven>更新相關
  • 從備份替換任何一個公共倉庫不可用的內容
0

如果禁用和啓用項目依賴項管理功能沒有幫助(通常有幫助),您可以修改項目中的.classpath文件並添加一行:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/> 

應該添加eclipse重新啓動依賴。

1

只是要添加另一個可能的解決方案,如果您有一個具有相互依賴關係的多項目構建,如果您有一個在子項目pom中定義的存儲庫以解決只有該項目依賴的特定依賴關係並且它依賴於它是其他分辨率的partent項目,它無法在子項目中看到這些依賴關係(即使它是從命令行運行的)。

將回購定義移至父POM。

2

使用Eclipse Kepler,刪除和重新添加maven自然修復了我遇到的同樣的問題。這是什麼過程,實際上做的是修改.settings/org.eclipse.m2e.core.prefs文件,手動更改線

resolveWorkspaceProjects=false 

resolveWorkspaceProjects=true 

那麼你很可能做出這種改變,如果你必須。

+0

手動更改此設置最終解決了我的問題。奇怪的是,點擊雖然GUI沒有。 – 2014-01-30 10:43:09

+0

它被設置爲true,但沒有運氣! – saikosen 2014-07-03 06:13:01

2

添加我的±2℃,未來的Google:

每當這個問題出現時,我刪除了M2存儲庫中的相應文件夾(在Mac上它是在~/.m2/repository)和日食與clean install再次建立

作品每一次

11

您可能需要告訴Eclipse來強制更新:

Project -> Maven -> Update Maven Project 

然後確保你已選擇:

Force Updates of Snapshots/Releases 

發生這種情況時,MVN安裝拷貝一些jar文件到Maven倉庫和Eclipse測試過此之前回購這瓶已經被複制那裏。

0

我曾經遇到同樣的問題。在CLI乾淨安裝上,然後在eclipse上刪除依賴關係,再次粘貼它,並做了訣竅。

0

刪除maven本地存儲庫中除jar之外的所有工件