Eclipse Juno中的生命周期配置错误未涵盖插件执行

时间:2013-04-10 23:45:26

标签: maven maven-3

为什么我的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

3 个答案:

答案 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)

  1. 帮助 - &gt;安装新软件

    • 安装 Groovy编译器2.2 / 2.1功能

    • 安装 Groovy-Eclipse M2E集成

  2. 窗口 - &gt;偏好 - &gt; Maven - &gt;生命周期映射 - &gt;打开工作区生命周期映射元数据

  3. 添加以下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>
    
    1. 重新加载生命周期映射并在您的maven项目上调用projekt更新。 (ALT + F5)

答案 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,否则安装这样的集成可能没有意义。