我是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:prepare-agent(执行:默认,阶段:初始化)
我做错了什么? 干杯
答案 0 :(得分:18)
您可以忽略插件目标,将类似内容添加到您的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>
答案 1 :(得分:14)
由于这与Eclipse Maven插件有关,或者可以在Eclipse的首选项中进行本地设置。将配置移出项目的pom文件可以使代码简单,干净,没有IDE细节。
转到Eclipse - &gt;偏好 - &gt; Maven - &gt;生命周期映射。添加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
- &gt; Update Project
答案 2 :(得分:0)
Eclipse现在提供快速修复以禁用警告并将其保存在用户首选项中(在Eclipse中 - &gt; Preferences - &gt; Maven - &gt;生命周期映射生命周期 - 映射 - metadata.xml,如@iker所述-aguayo)所以你不必手动创建或编辑文件。这在您无法更新pom的情况下非常有用(例如使用无法提交的开源项目。)
答案 3 :(得分:-1)
我最终选择忽略该插件并使用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
答案 4 :(得分:-2)
此问题特定于Eclipse,outlined on the M2E wiki。对不起,我无能为力,因为我不使用Eclipse。