产生的原因:简单来讲就是M2E在1.0之后规定,所有Maven build中执行的Plugin的Goal都需要配置在Lifecycle mapping Configuration中。根据Lifecycle Configuration,M2E就知道在Eclipse嵌入的Maven Builder中执行哪些的Goal。当然默认的一些Plugin是不用再配置Lifecycle mapping。
详细分析请参考http://wiki.eclipse.org/M2E_plugin_execution_not_covered
解决方法:根据上面的简单分析,其实解决方式就是如何配置Lifecycle mapping。有两种相对都比较简单的方法,如下:
1. 在pom的PluginManagement中添加lifecycle-mapping配置
<plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId> org.sonatype.flexmojos </groupId> <artifactId> flexmojos-maven-plugin </artifactId> <versionRange>[4.2-beta,)</versionRange> <goals> <goal>compile-swc</goal> <goal>test-compile</goal> <goal>trust</goal> <goal>wrapper</goal> </goals> </pluginExecutionFilter> <action> <ignore></ignore> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin>
2. 在Eclipse的Preferences->Maven->LifecycleMappings添加以下内容:
<?xml version="1.0" encoding="UTF-8"?> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId> org.sonatype.flexmojos </groupId> <artifactId> flexmojos-maven-plugin </artifactId> <versionRange>[4.2-beta,)</versionRange> <goals> <goal>compile-swc</goal> <goal>test-compile</goal> <goal>trust</goal> <goal>wrapper</goal> </goals> </pluginExecutionFilter> <action> <ignore></ignore> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata>