我刚刚设置了Eclipse Helios的全新安装,并已将M2Eclipse配置为使用Maven的外部(v 2.2.1)安装。
系统在命令行上编译正常,但是从M2Eclipse中我的几个项目模块都有错误:
Missing artifact javax.jms:jms:jar:1.1:test
我可以通过从Atomikos依赖项中排除jms工件来解决错误。但我的主要问题是两者如何能提供不同的结果!
更奇怪的是我有另一个Eclipse Helios安装,一切正常。
答案 0 :(得分:5)
m2eclipse中的依赖解析器没有使用外部Maven安装,它必须使用嵌入式Maven版本。因此,我建议获取最新版本的m2eclipse以及Maven 3.x版本,以最大限度地减少依赖性解析的差异。
答案 1 :(得分:3)
此外,您可能在maven 2.2.1 conf / settings.xml文件中定义了一些备用存储库。如果使用嵌入式maven3,这些将被忽略。
您还可以将maven 2.2.1安装指定为m2eclipse的maven安装。
答案 2 :(得分:1)
我发了一个类似的问题,终于找到了答案。见m2eclipse says "Missing artifact" but I can build from cmdline!
您可以在http://getsatisfaction.com/sonatype/topics/_missing_artifact_from_m2eclipse_but_it_is_not_true
答案 3 :(得分:1)
同样的问题:我使用maven 2.2.1作为从eclipse使用的安装,因为它是在命令行上运行的。 Maven 3不适合这个具体的项目,抱怨一些缺失的依赖关系,经过大量的研究,在我的案例中,结果是来自旧的maven 1存储库与传统布局。 Maven 3讨厌这些,当它们找到它们时会爆发出来。
所以maven 2在命令行上运行得很好,但是maven 3没有。 eclipse的问题在于,即使你指定maven 2作为构建项目的安装,它也会使用maven 3(嵌入式安装)进行依赖性解析,所以如果你不太需要一个遗留存储库你就搞砸了(我的意思是,eclipse也无济于事。)