-->

Jacoco Maven插件 - 插件执行不属于生命周期配置(Jacoco Maven Plugin

2019-07-19 19:06发布

我是新来的Maven和要使用的Jacoco Maven插件来构建我的项目。

我已经设置了一个示例项目使用TestNG唯一的依赖。

下面是pom.xml中的一部分:

<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.6.2.201302030002</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我得到这个错误:

插件执行未包括生命周期配置:org.jacoco:jacoco-maven-插件:0.6.2.201302030002:制备剂(执行:默认值,相:初始化)

我究竟做错了什么 ? 干杯

Answer 1:

您可以忽略的插件目标,加入这样的事情你的pom.xml

<pluginManagement>
        <plugins>
            <!--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.jacoco</groupId>
                                    <artifactId>jacoco-maven-plugin</artifactId>
                                    <versionRange>[0.5,)
                                    </versionRange>
                                    <goals>
                                        <goal>prepare-agent</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <!-- m2e doesn't know what to do with jacoco,
                                        let's ignore it or annoying error markers appear
                                        see http://wiki.eclipse.org/M2E_plugin_execution_not_covered
                                     -->
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>


Answer 2:

由于这是关系到Eclipse的Maven插件,或者这可以在本地Eclipse的喜好设置。 移动配置了该项目的POM文件有助于代码简洁明快,免费的IDE详情。

去到Eclipse - >首选项 - >的Maven - >生命周期映射。 添加lifecycle-mapping-metadata.xml ,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
  <pluginExecutions>
    <pluginExecution>
      <pluginExecutionFilter>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <versionRange>[0.5,)</versionRange>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
      </pluginExecutionFilter>
      <action>
        <ignore />
      </action>
    </pluginExecution>
  </pluginExecutions>
</lifecycleMappingMetadata>

刷新生命周期的映射文件,然后Maven - > Update Project



Answer 3:

现在Eclipse提供了一个快速解决禁用警告,并保存在用户的偏好(在Eclipse - >首选项 - >的Maven - >如指出的生命周期映射的生命周期映射-metadata.xml中@伊克尔 - 阿瓜约),所以你不要“T必须手动创建或编辑文件。 这是在情况下,你不能更新POM有用的(例如,使用一个开源项目,你不能犯。)



Answer 4:

我最终还是选择了忽略插件和使用CLI命令MVN代替用代码覆盖测试。

内部Eclipse IDE中,右键单击该jacoco - Maven的插件红色标记的警告。 你应该在弹出三个选项来解决警告,选择忽略警告,这将导致你的pom.xml自动生成的部分,即带线的意见开始,

<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->

在命令行中,每个签入前运行mvn命令,并应与覆盖触发测试目标,

$mvn clean package  


Answer 5:

这个问题是专门针对Eclipse,作为对M2E维基概述 。 对不起,我不能帮助还不止这些,因为我不使用Eclipse。



文章来源: Jacoco Maven Plugin - Plugin execution not covered by lifecycle configuration