代码之家  ›  专栏  ›  技术社区  ›  Dave

为什么M2Eclipse抱怨缺少工件而mvn命令行没有?

  •  6
  • Dave  · 技术社区  · 14 年前

    我刚刚安装了一个全新的EclipseHelios,并将M2Eclipse配置为使用Maven的外部(v 2.2.1)安装。

    系统在命令行上编译得很好,但是在M2Eclipse中,我的几个项目模块有一个错误:

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

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

    更奇怪的是,我有另一个日食赫利俄斯装置,一切工作正常。

    4 回复  |  直到 14 年前
        1
  •  5
  •   Eugene Kuleshov    14 年前

    m2eclipse中的依赖解析程序没有使用外部Maven安装,它必须使用嵌入式Maven版本。因此,我建议获得m2eclipse的最新版本,以及Maven 3.x版本,以最小化依赖项解析的差异。

        2
  •  3
  •   mglauche    14 年前

    另外,您可能在maven 2.2.1 conf/settings.xml文件中定义了一些替代存储库。如果使用嵌入式maven3,这些将被忽略。

    您还可以将maven 2.2.1安装指定为m2eclipse的maven安装。

        4
  •  1
  •   Rafa    13 年前

    这里同样的问题:我使用maven 2.2.1作为从eclipse使用的安装,因为它是在命令行上工作的。Maven 3并不适用于这个具体的项目,它抱怨一些缺少的依赖项,经过大量研究,在我的例子中,这些依赖项是来自具有遗留布局的旧Maven 1存储库。小牛3讨厌这些,当它发现它们的时候,就会大哭起来。

    所以maven 2在命令行上工作得很好,但maven 3没有。eclipse的问题是,即使您指定maven 2作为构建项目的安装,它也会使用maven 3(嵌入式安装)来解决依赖关系,因此如果您不幸运地需要一个遗留存储库,那么您就完蛋了(我的意思是,eclipse不会帮到您)。