为什么我的Maven构建在命令行上运行得很好但是当我在Eclipse中运行时,它需要我将此部分添加到我的pom.xml中,否则我会收到此错误:
Plugin execution not covered by lifecycle configuration
: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
(execution: default-testCompile, phase: test-compile)
围绕'maven-compiler-plugin'插件发生这种情况并不奇怪吗?我无法在谷歌的任何地方找到这样的其他问题,尽管我发现很多关于第三方插件的修复建议。我做了很多研究和搜索,但没有找到解释,甚至没有from here。
pom.xml需要解决这个问题:
<!--This plugin's configuration is used to store Eclipse m2e
settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<versionRange>[3.1,)</versionRange>
<goals>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
如果你想查看我的来源,请here is my simple project on GitHub。
答案 0 :(得分:7)
我终于解决了它。看来我上面发布的“pluginManagement”部分是Eclipse Maven项目的一般要求,即使我拒绝了它,即使我在互联网上找不到的文档也没有明确提到过。
另外,生命周期排除部分中的“versionRange”似乎也需要“gmaven-plugin”的版本号,而不是我试图在上面提供的“Maven版本”。
<pluginExecutionFilter>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>testCompile</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
答案 1 :(得分:2)
帮助 - &gt;安装新软件
安装 Groovy编译器2.2 / 2.1功能
安装 Groovy-Eclipse M2E集成
窗口 - &gt;偏好 - &gt; Maven - &gt;生命周期映射 - &gt;打开工作区生命周期映射元数据
添加以下xml:
<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<versionRange>[1.3,)</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
答案 2 :(得分:2)
您可能需要M2E&#34;连接器&#34;使用Eclipse(JDT)编译器来理解maven-compiler-plugin。
选择&#34;发现连接器&#34;并选择JBoss提供的Eclipse JDT编译器的M2E连接器,或手动安装。
Eclipse JDT Compiler 1.0.1.201209200903的M2E连接器
您可能还会获得一个Groovy连接器 - 也许它在引擎盖下使用类似的技术? - 但除非你使用Groovy,否则安装这样的集成可能没有意义。