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

vag*_*ond 33 eclipse maven-2 eclipse-plugin m2eclipse

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

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

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

有想法该怎么解决这个吗?

更新

目录结构,pom文件布局:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml
Run Code Online (Sandbox Code Playgroud)

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

- 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)
Run Code Online (Sandbox Code Playgroud)

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

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

Ice*_*x13 45

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

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


Ric*_*ler 20

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

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

首选项截图http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/eclipse_preferences2.png

有关更多详细信息,请参阅m2eclipse一书


Har*_*are 19

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

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
Run Code Online (Sandbox Code Playgroud)

问题得到了解决.

  • +1很棒的答案,但它仍然很有趣,在Eclipse UI中可以做同样的事情 - 以及Eclipse为什么不自动执行此操作. (2认同)

Mac*_*tka 0

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

我有时会遇到问题,因为有时项目会出现一些奇怪的错误(它无法移动某些东西),但简单的命令(从 Eclipse 作为任务或从控制台运行)+刷新()F5解决了所有问题:

mvn clean
Run Code Online (Sandbox Code Playgroud)

但请注意,我在 eclipse 中创建了项目。不过我是pom.xml手工修改的。