2012-02-22 168 views
38

我正在尝试生成coverage.xml,以便我可以在Hudson的Cobertura插件中引用它,但该文件未被创建。Maven Cobertura插件没有生成coverage.xml

我已经添加了以下到我的POM

<reporting> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <formats> 
        <format>html</format> 
        <format>xml</format> 
       </formats> 
      </configuration> 
     </plugin> 
    </plugins> 
</reporting> 

运行MVN的Cobertura后:的Cobertura,截至** \目标\网站\的Cobertura,但coverage.xml是无处预期在生成HTML网站被发现。我错过了什么/误解?

我正在运行的Maven 3.0.3

回答

6

我仍然使用Maven插件和哈德森之间的连接相当新手和它的插件 - 所以这是不以任何方式一个聪明的答案,但在谷歌帮助这个问题很少,而且很有帮助 - 所以希望它可以帮助未来的人。

在花费了几个小时的修改设置之后,我发现coverage.xml根本不是在本地构建的。

这是得到它的工作的组合:

  1. 我曾在我的POM改变了我的版本2.2(我是从阿帕奇2.5.1获取资源 未发现错误)
  2. 新增的Cobertura :在的Cobertura我哈德森目标
  3. 设置推荐的Cobertura覆盖模式到 ** /目标/网站/的Cobertura/coverage.xml
26

我把插件在构建部分,它的工作原理:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <formats> 
        <format>html</format> 
        <format>xml</format> 
       </formats> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

报告部分及其插件部分的差异进行说明here。我不知道这是一个maven [3.0.4]还是cobertura-plugin问题。

26

添加以下行到你的应用目标:(配置詹金斯应用程序的部分)

cobertura:cobertura -Dcobertura.report.format=xml 

pom.xml的变化:

<reporting> 
<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <formats> 
       <format>html</format> 
       <format>xml</format> 
      </formats> 
     </configuration> 
    </plugin> 
</plugins> 

+1

注意的是,即使POM配置指定两个'html'和'xml',命令行参数将覆盖,指示插件生成仅'xml'。 – 2015-02-07 06:39:34

+1

感谢-D参数 – 2017-12-11 12:23:18

0

我已经使用了同样的问题2.6的插件。

我发现,当我指定这两种类型时,我只有HTML。

  <formats> 
       <format>html</format> 
       <format>xml</format> 
      </formats> 

但是,当我只指定XML,我得到一个XML报告。

  <formats> 
       <format>xml</format> 
      </formats> 

这可能是插件中的一个错误。

另一个用户建议创建两个执行。我试过没有成功(这意味着我得到的HTML,但不是XML)。

0

更新您的POM文件

<build> 
<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.7</version> 
     <configuration> 
      <formats> 
       <format>html</format> 
       <format>xml</format> 
      </formats> 
     </configuration> 
    </plugin> 
</plugins> 

此制定了我:可能的原因,它contanis最新版本的Cobertura,Maven的插件(2.7)

0

的两种方法将Cobertura整合到Maven中。

  1. 看跌的Cobertura到POM文件的构建部分,然后,你必须执行MVN干净的Cobertura:的Cobertura来生成报告。如果你配置了XML和HTML,那么你会得到两份报告。
  2. 将Cobertura放入报告部分的pom文件,然后您必须执行mvn clean site来生成报告。如果你配置了XML和HTML,那么你会得到两份报告。此外,您还可以获得生成的网站(open target/site/index.html),并将所有报告集成到一起Coberture,Checkstyle的,...
1

我有同样的问题,但它解决了现在: Maven的命令后,只需添加-Dcobertura.report.format=xml。它应该可以工作

1

我的目标是让Cobertura运行mvn test而不需要额外的命令行参数。这里有一个神奇的XML为我做了窍门,其中HTML和XML都是在/target/site/cobertura中生成的。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <id>cobertura</id> 
        <phase>test</phase> 
        <goals> 
         <goal>cobertura</goal> 
        </goals> 
        <configuration> 
         <formats> 
          <format>xml</format> 
          <format>html</format> 
         </formats> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
相关问题