我在Windows 7上使用Eclipse Juno和Maven 3.0.5。该项目之前是在Windows XP上,我已经转移到Windows 7 64位计算机。
我复制了我的Eclipse Spring 3,Hibernate 4和JSF 2.0项目,当我尝试编译时出现以下错误
Plugin execution not covered by lifecycle configuration:
org.bsc.maven:maven-processor-plugin:2.0.6:process (execution: process, phase:
generate-sources)
我在this线程中通过在Eclipse.ini文件中添加以下内容来尝试,但它没有解决问题。
-vm
c:\Program Files\Java\jdk1.7.0_21\jre\bin\server\jvm.dll
尝试构建maven安装和清理,但问题仍然存在。
如何解决此问题?任何帮助都非常值得赞赏。
由于
Maven代码段
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.0.6</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- source output directory -->
<outputDirectory>target/metamodel</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
答案 0 :(得分:5)
如果Maven插件没有提供m2e生命周期映射,则较新版本的m2e会抱怨。较新的插件提供程序通过其JAR中的文件 META-INF / m2e / lifecycle-mapping-metadata.xml 提供此类映射。如果这个文件不存在,那么Eclipse会抱怨。
通过为POM添加旧插件的生命周期映射,可以完全避免这些抱怨。在给定的示例中,此映射在配置文件内完成,该配置文件在Eclipse中运行构建时自动激活(设置m2e.version属性),并且在完成常规maven构建时不活动。
<profiles>
<profile>
<id>m2e</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<versionRange>[2.0.6,)</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
上面的示例禁用了Eclipse构建中的插件。也可以通过将<execute />
指定为操作来启用它。
请注意, pluginExecutionFilter 下的设置必须与您希望映射的插件和插件的目标相匹配。可以指定多个 pluginExecution 元素来映射不同的插件。