m2eclipse和maven命令行之间的差异

时间:2014-12-15 21:35:07

标签: java eclipse maven

我在通过maven CLI和Eclipse构建项目时遇到了一些问题:当我在Eclipse中构建项目时,我没有任何问题。当我在shell中构建项目时,我收到一个错误,编译器无法找到特定的包。

这是使用相同的pom文件。问题是传递依赖性。当Eclipse更新项目时,它能够正确地下拉依赖项,而cli则不能。依赖项存储在自定义(Ivy)存储库布局中,但我们设置了镜像,使maven能够读取它们。 cli和Eclipse都在读取相同的pom文件和相同的settings.xml。

我正在寻求理解Eclipse如何解决这些依赖关系,而原始Maven则无法解决。

3 个答案:

答案 0 :(得分:1)

根据你的问题:M2Eclipse只是在Eclipse中使用Maven的工具

我们可以从M2Eclipse网站找到:

M2Eclipse通过以下功能为Apache Maven提供与IDE的紧密集成:

  • 从Eclipse中启动Maven构建
  • 基于Maven的pom.xml
  • 的Eclipse构建路径的依赖关系管理
  • 从Eclipse工作区解析Maven依赖项而不安装到本地Maven存储库
  • 从远程Maven存储库自动下载所需的依赖项
  • 用于创建新Maven项目,pom.xml以及在普通Java项目上启用Maven支持的向导
  • 快速搜索Maven远程存储库中的依赖项
  • Java编辑器中的快速修复,用于按类或包名称查找所需的依赖项/ jar

答案 1 :(得分:0)

M2Eclipse使用嵌入式Maven。所以它也将使用自己的.m2 repo。您可以通过转到Preferences / Maven / Intallations强制它将.m2 repo用于CLI Maven。

答案 2 :(得分:0)

似乎在运行m2eclipse时,Eclipse会发现并解决所有瞬态依赖关系并将它们放在类路径上。我将这些依赖项添加为显式(因为我使用它们)和项目构建。