Eclipse + Maven:M2E到底在做什么?

时间:2015-09-23 12:40:23

标签: java eclipse maven

我想知道当我点击Project>干净,mvn真的参与了建立构建过程。

是M2E(Maven到Eclipse,标准插件)只是按照pom指定的方式读取和分析pom设置/更新Eclipse项目,还是实际运行pom中定义的阶段?

我只是想知道Project>会发生什么说到Maven清洁......

[更新]

由于人们对这个问题感到困惑,这里有更多的信息:

我在maven中改变了项目的构建过程,并且它不会被我直接在IDE中触发的动作反映出来。因此,M2E接口更像是maven设置的转换器,并将相同的设置应用于Eclipse而不改变行为。它也可以解释为什么M2E首先提供连接器。

由于我无法验证这一点,我将其归结为一个简单的问题,如果回答,我知道关于Eclipse中Maven集成的更难的问题的答案。

[UPDATE2]

M2E具有执行某些阶段的能力。我添加了答案。这个答案并不明显,因为我在问这个问题之前上下搜索了互联网。此外,我只是通过前面对这个问题的答案提出的一些想法找到答案,这是我要求的,但只有一半的情况。

这个问题是一个很好的例子,为什么经常在堆栈溢出时,显而易见的既不是被问到也不被暗示也不是最终的答案和触发器快乐的亲密友好群有时会忽略这一点: - )。

2 个答案:

答案 0 :(得分:1)

清理eclipse项目时,eclipse会清除项目的输出目录,而不会调用maven。这是一个在你拥有的所有项目上执行的eclipse操作,无论项目是否已从maven导入。

如果要在导入的eclipse项目上运行maven目标,可以使用Run configurations显式调用项目上的maven目标。

答案 1 :(得分:-1)

M2E确实为每个阶段都有自己的映射。根据此映射,Eclipse操作将被替换,扩展或保持原样。

Configuration of each Maven Phase and how it is handled by M2E integration.

从下图中可以看到clean命令设置为ignore。您可以按项目属性>查看/更改这些映射。 Maven>生命周期映射。所以这实际上是(按预期)每相映射。通过下载新的连接器,M2E能够为默认安装不支持的特殊阶段提供额外的映射。