在Eclipse中,“自动构建”和Maven是什么?

7
在Eclipse中,启用Maven后会有一个pom.xml文件用于使用Maven构建。此外,Eclipse的项目菜单中有一个“自动构建”选项。
“自动构建”是否会自动使用Maven进行构建,还是我们需要取消勾选它,因为当启用Maven时,我们不再需要Eclipse内置的构建系统了?
2个回答

12

Eclipse的m2e将运行它具有生命周期绑定的插件目标。我不知道(也无法找到)具体运行哪些特定阶段,但是从经验来看:

  • 对于正常操作,至少会执行编译(compile)
  • 对于执行测试(例如JUnit测试用例),至少会执行测试编译(test-compile)

请注意,它并没有所有可能的绑定,解决这个问题有时很棘手。因此,通常情况下,两者都应该可以正常运行,并且实际上将避免由于代码更新后编译状态未更新而导致的某些不一致性。

然而,如果您有被m2e忽略的插件,则在您需要确保构建正确完成时,应该关闭“自动构建”

例如,使用Maven Properties插件,如果您没有提供绑定并将m2e设置为忽略,则会出现属性值不平衡的资源。问题尤其会在您执行"Maven"构建(例如,从右键上下文菜单中)之后更改代码并保存时发生。

1
你需要两者。原因如下:
Eclipse内置编译器用于增量编译,例如当你保存代码时。但是项目的完整构建是使用Maven和pom.xml中的项目配置完成的。

4
不正确 - m2e 实际上运行它所具有的生命周期绑定,它不仅仅是增量代码编译。这里举一个简单的例子是资源过滤。 - mikołak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接