2013-02-12 77 views
18

我是Maven的新手,想要使用Jacoco 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:准备代理(执行:默认,阶段:初始化)

我在做什么错? 欢呼声

回答

-2

此问题特定于Eclipse,如outlined on the M2E wiki。对不起,我不能帮助更多,因为我不使用Eclipse。

17

可以忽略的插件目标,加入这样的事情你的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> 
+0

在里面加上标签 – SkorpEN 2015-03-31 12:01:26

12

由于这是关系到Eclipse的Maven插件,或者这可以在本地Eclipse的喜好设置。将配置移出项目的pom文件有助于代码简单且干净,无需IDE特殊资料。

转到Eclipse - >首选项 - > Maven - > Lifecycle Mappings。添加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

-1

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

在您的Eclipse IDE中,右键点击 jacoco-maven-plugin的红色标记警告。你应该在弹出三个选项来解决警告,选择忽略警告,这将导致你的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 
+0

这并不回答这个问题。问题是关于插件错误。使用命令行不能解决错误 – Pat 2017-12-13 23:09:49

+0

@Pat它确实回答了这个问题。这个答案解释了一种忽略警告的方法,请再仔细阅读。如果您按照此处的说明操作,则POM文件将从代码部分的注释行开始更新,以忽略警告。CLI只是另一种选择。 – 2017-12-15 00:01:10

+0

我仍然认为忽略Eclipse中的插件并不能解决问题,它只是一种解决方法。在Eclipse中使用maven插件的重点在于,我不必去命令行并键入那些'mvn'命令。此解决方法不能解决实际的错误。 – Pat 2017-12-18 05:25:34

0

现在Eclipse提供了一个快速解决禁用警告,并保存在用户的偏好(在Eclipse - >首选项 - - > Maven - >生命周期映射lifecycle-mapping-metadata.xml,如@ iker-aguayo所示),因此您不必手动创建或编辑文件。这在你无法更新pom的情况下很有用(例如使用无法提交的开源项目)。

相关问题