更新到 m2e 1.6 导致 "Conflicting lifecycle mapping" 错误

Update to m2e 1.6 resulted in "Conflicting lifecycle mapping" error

在我的 Eclipse Luna SR2 (4.4.2) 中 运行 更新后,我安装了 m2e 1.6.1.20150625-2338。对于我现在使用 maven-war-plugin 的项目,我在问题视图中收到以下错误:

全文:

Conflicting lifecycle mapping (plugin execution "org.apache.maven.plugins:maven-war-plugin:2.3:war (execution: war-standalone, phase: package)"). To enable full functionality, remove the conflicting mapping and run Maven->Update Project Configuration.

Conflicting lifecycle mapping (plugin execution "org.apache.maven.plugins:maven-war-plugin:2.3:war (execution: war-standalone, phase: package)"). To enable full functionality, remove the conflicting mapping and run Maven->Update Project Configuration.

插件配置没有导致之前版本的m2e出现问题。在 pom 中看起来没问题,没有异常:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <executions>
        <execution>
            <id>war-standalone</id>
            <goals>
                <goal>war</goal>
            </goals>
            <phase>package</phase>
            <configuration>
                ...
            </configuration>
        </execution>
        <execution>
            <id>war-overlay</id>
            <goals>
                <goal>war</goal>
            </goals>
            <phase>package</phase>
            <configuration>
                ...
            </configuration>
        </execution>
    </executions>
</plugin>

maven-war-plugin 的生命周期映射未在 pom 中配置。我检查了它是否在父 poms 中,但找不到任何东西。 None 也在工作区生命周期映射元数据中。

然后我注意到 m2e-wtp 插件(映射似乎来自哪里)仍然是旧版本。我把它更新到 1.2.0.20150602-1740 但它并没有解决问题。

知道如何追踪冲突映射的位置或者如何正确解决问题吗?

我在从 m2e 1.6.0 升级到 m2e 1.6.1 时遇到了同样的冲突问题,但是在配置为使用 groovy-eclipse-compiler 的 maven-compiler-plugin 上。

经过调查,我发现 this commit 很可能是错误的根源,因为它改变了配置器的加载方式,并可能导致加载更多配置器。就我而言,似乎默认编译器配置器 groovy eclipse 编译器配置器都已加载,因此导致冲突。

问题已报告,并已为此创建 bug

请注意,它已在 m2e v1.6.2 中修复。