m2eclipse没有找到maven依赖项,找不到工件

时间:2010-03-06 18:44:52

标签: eclipse maven-2 eclipse-plugin m2eclipse

我使用m2eclipse作为eclipse的maven 2插件。我对maven来说是全新的,所以我的错误可能很简单,尽管搜索并没有为我提供任何解决方案。我可以从命令行运行maven并成功构建。但是,如果我作为现有的maven项目导入,或者使用mvn eclipse:eclipse然后导入,我会得到在我的POM文件中找不到的工件,导致根本没有加载maven依赖项。

奇怪的是,我有2个项目,两个孩子都是父母pom打包项目。一个孩子加载我所有的maven依赖项,而另一个孩子找不到任何,并说我的pom文件丢失了工件。同样,我可以从命令行安装和打包它们。

我甚至尝试将我的项目加载到netbeans中,这些netbeans完美无缺,但是我需要使用eclipse。

有关如何解决此问题的任何想法?

更新

目录结构,pom文件布局:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml

Main是ProjectA和ProjectB的父项目。 ProjectB将ProjectA作为依赖项。显然m2eclipse对这种依赖感到不满意。一旦我从ProjectB的pom文件中删除ProjectA的依赖项,eclipse就会找到所有maven依赖项。

- com.company.myproj:app:6.6.0:jar Missing: ---------- 1) com.company.myproj:main:pom:${myproj.version} ---------- 1 required artifact is missing. for artifact: com.company.myproj:main:pom:$
 {myproj.version} from the specified remote repositories: apache-incubating (http://people.apache.org/repo/m2-incubating-repository/, releases=true, snapshots=true), central (http://
 repo1.maven.org/maven2, releases=true, snapshots=false)

但是,我仍然需要ProjectB对ProjectA具有依赖性。错误消息似乎是m2eclipse在远程仓库中寻找ProjectA。项目A应该只在.m2目录中,但我不知道如何告诉m2eclipse看那里。

我认为这可能只是m2eclipse特定的问题,因为从命令行使用mvn工作正常,就像我之前说的那样,netbeans加载项目和依赖项就好了。

7 个答案:

答案 0 :(得分:45)

我遇到了在其他项目中创建的依赖项的问题。下载的第三方依赖项在构建路径中显示正常,但不是我创建的库。

解决方案:在未正确构建的项目中,右键单击项目并选择“属性”,然后选择“Maven”。取消选中标记为“从Workspace项目中解析依赖项”的框,单击“应用”,然后单击“确定”。再次右键单击项目并执行Maven->更新快照(或更新依赖项),当项目重建时,您的错误应该消失(如果启用了自动构建,则会自动消失)。

答案 1 :(得分:20)

听起来你的m2eclipse安装使用的是嵌入式Maven,它有自己的存储库(位于用户主页下)和设置。

如果您打开Maven偏好设置(窗口 - > 偏好设置 - > Maven - > 安装,您可以通过选择添加... 然后浏览到M2_HOME目录来添加您的Maven安装。

Preferences screenshot http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/eclipse_preferences2.png

有关详细信息,请参阅m2eclipse book

答案 2 :(得分:19)

对于我来说,maven正在下载依赖项,但无法将其添加到类路径中。我看到了项目的.classpath,它没有任何与maven相关的条目。当我添加

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

这个问题已经解决了。

答案 3 :(得分:2)

我找到的原因之一是它没有从存储库中找到jar的原因可能是,因为该特定jar的.pom文件可能丢失或损坏。只需更正它并尝试从本地存储库加载。

答案 4 :(得分:1)

好的我修好了这件事。必须先将项目转换为Maven Projects,然后将它们从Eclipse工作区中删除,然后重新导入它们。

答案 5 :(得分:0)

我在使用m2eclipse时遇到了问题(即它似乎根本没有安装)但是我使用IAM开发了一个项目 - 由Eclipse Foundation支持的eclipse的maven插件(或托管或类似的东西)。

我有时遇到问题,因为项目有时出现一些奇怪的错误(它无法移动)但是简单的命令(从eclipse作为任务或从控制台运行)+ refresh(F5)解决了所有问题:< / p>

mvn clean

但是请注意我在eclipse中创建了项目。但是我手动修改了pom.xml

答案 6 :(得分:0)

如果您使用自定义的“Settings.xml”,并且其中配置了不同的<localRepository>,则可能会出现问题。

Eclipse将使用MAVEN的默认安装,并将使用User的默认位置来查找本地Maven存储库,该存储库在Linux系统上为'/home/${USER}/.m2/'

通过执行以下操作,可以轻松配置Eclipse以使用自定义的“Settings.xml”: 转到 - &gt;窗口 - &gt;偏好 - &gt;选择'Maven' - &gt;选择“用户设置”

  1. 在“用户设置”下,通过单击“浏览”并选择自定义的“Settings.xml”,为“用户设置”选择自定义“Settings.xml”文件。
  2. 点击“更新设置”,如果“本地存储库”文本框未显示上述文件中的自定义位置,只需键入该位置,然后点击“重新编制索引”。
  3. 点击“确定”
  4. 在此之后,您可以从“Project Explorer”继续选择项目,右键单击,选择“Maven”&gt; '更新项目'。确保在窗口中选中(勾选)项目,然后单击“确定”。

    如果为Maven使用自定义“Settings.xml”,这应该有助于解决问题。

    希望它有所帮助。