当mvn命令行没有时,为什么M2Eclipse会抱怨缺少工件?

时间:2010-11-25 04:13:55

标签: java eclipse maven-2 log4j m2eclipse

我刚刚设置了Eclipse Helios的全新安装,并已将M2Eclipse配置为使用Maven的外部(v 2.2.1)安装。

系统在命令行上编译正常,但是从M2Eclipse中我的几个项目模块都有错误:

Missing artifact javax.jms:jms:jar:1.1:test

我可以通过从Atomikos依赖项中排除jms工件来解决错误。但我的主要问题是两者如何能提供不同的结果!

更奇怪的是我有另一个Eclipse Helios安装,一切正常。

4 个答案:

答案 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)

答案 3 :(得分:1)

同样的问题:我使用maven 2.2.1作为从eclipse使用的安装,因为它是在命令行上运行的。 Maven 3不适合这个具体的项目,抱怨一些缺失的依赖关系,经过大量的研究,在我的案例中,结果是来自旧的maven 1存储库与传统布局。 Maven 3讨厌这些,当它们找到它们时会爆发出来。

所以maven 2在命令行上运行得很好,但是maven 3没有。 eclipse的问题在于,即使你指定maven 2作为构建项目的安装,它也会使用maven 3(嵌入式安装)进行依赖性解析,所以如果你不太需要一个遗留存储库你就搞砸了(我的意思是,eclipse也无济于事。)