产生的原因:简单来讲就是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>

本文解析了M2E在1.0之后对于Maven build中Plugin的Goal配置要求变化的原因,并提供了两种配置Lifecyclemapping的解决方案。
1174

被折叠的 条评论
为什么被折叠?



