我使用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加载项目和依赖项就好了。
答案 0 :(得分:45)
我遇到了在其他项目中创建的依赖项的问题。下载的第三方依赖项在构建路径中显示正常,但不是我创建的库。
解决方案:在未正确构建的项目中,右键单击项目并选择“属性”,然后选择“Maven”。取消选中标记为“从Workspace项目中解析依赖项”的框,单击“应用”,然后单击“确定”。再次右键单击项目并执行Maven->更新快照(或更新依赖项),当项目重建时,您的错误应该消失(如果启用了自动构建,则会自动消失)。
答案 1 :(得分:20)
听起来你的m2eclipse安装使用的是嵌入式Maven,它有自己的存储库(位于用户主页下)和设置。
如果您打开Maven偏好设置(窗口 - > 偏好设置 - > Maven - > 安装,您可以通过选择添加... 然后浏览到M2_HOME目录来添加您的Maven安装。
有关详细信息,请参阅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;选择“用户设置”
在此之后,您可以从“Project Explorer”继续选择项目,右键单击,选择“Maven”&gt; '更新项目'。确保在窗口中选中(勾选)项目,然后单击“确定”。
如果为Maven使用自定义“Settings.xml”,这应该有助于解决问题。
希望它有所帮助。