我在通过maven CLI和Eclipse构建项目时遇到了一些问题:当我在Eclipse中构建项目时,我没有任何问题。当我在shell中构建项目时,我收到一个错误,编译器无法找到特定的包。
这是使用相同的pom文件。问题是传递依赖性。当Eclipse更新项目时,它能够正确地下拉依赖项,而cli则不能。依赖项存储在自定义(Ivy)存储库布局中,但我们设置了镜像,使maven能够读取它们。 cli和Eclipse都在读取相同的pom文件和相同的settings.xml。
我正在寻求理解Eclipse如何解决这些依赖关系,而原始Maven则无法解决。
答案 0 :(得分:1)
根据你的问题:M2Eclipse只是在Eclipse中使用Maven的工具
我们可以从M2Eclipse网站找到:
M2Eclipse通过以下功能为Apache Maven提供与IDE的紧密集成:
答案 1 :(得分:0)
M2Eclipse使用嵌入式Maven。所以它也将使用自己的.m2 repo。您可以通过转到Preferences / Maven / Intallations强制它将.m2 repo用于CLI Maven。
答案 2 :(得分:0)
似乎在运行m2eclipse时,Eclipse会发现并解决所有瞬态依赖关系并将它们放在类路径上。我将这些依赖项添加为显式(因为我使用它们)和项目构建。