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

奇怪的是,我有2个项目,两个 child 都是父pom打包项目。一个 child 加载了我所有的Maven依赖项,而另一个 child 找不到任何依赖项,并说我的Pom文件缺少 Artifact 。同样,我可以从命令行安装和打包它们。

我什至尝试将我的项目加载到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的依赖项,所有的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)

但是,我仍然需要ProjectB对ProjectA具有这种依赖性。错误消息似乎是m2eclipse在远程仓库中寻找ProjectA。项目A仅应位于.m2目录中,但我不确定如何告诉m2eclipse在那里。

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

最佳答案

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

解决方案:在构建不正确的项目中,右键单击该项目,然后选择“属性”,然后选择“Maven”。取消选中标有“解决工作区项目的依赖关系”的框,单击“应用”,然后单击“确定”。再次右键单击您的项目,然后执行Maven-> Update Snapshots(或Update Dependencies),并且在重新构建项目时(如果启用了自动构建,则该错误将自动消失)。

07-25 23:33
查看更多