Maven Cobertura插件没有生成coverage.xml

时间:2012-02-22 16:19:03

标签: maven-plugin maven-3 hudson-plugins cobertura

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

我已将以下内容添加到我的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后,HTML网站按照预期在** \ target \ site \ cobertura生成,但找不到coverage.xml。我错过了什么/误解了什么?

我正在运行Maven 3.0.3

8 个答案:

答案 0 :(得分:27)

我把插件放在构建部分,它可以工作:

<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问题。

答案 1 :(得分:27)

将以下行添加到您的应用程序目标:(在jenkins中配置应用程序部分)

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>

答案 2 :(得分:7)

对于Maven插件和Hudson以及它的插件之间的联系,我仍然相当新手 - 所以这无论如何都不是一个明智的答案,但对于这个问题,谷歌的帮助很少 - 所以希望如此它可以帮助将来的某个人。

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

这是让它发挥作用的组合:

  1. 我在POM中将我的版本更改为2.2(我正在获取资源 没有发现Apache 2.5.1)
  2. 的错误
  3. 在我的哈德森目标中添加了cobertura:cobertura
  4. 将Cobertura覆盖模式设置为 推荐** / target / site / cobertura / coverage.xml

答案 3 :(得分:2)

我的目标是让Cobertura在没有额外命令行参数的情况下运行gcc version 4.9.2 (Debian 4.9.2-10)。以下是为我提供技巧的神奇XML,其中HTML和XML都是在mvn test中生成的。

/target/site/cobertura

答案 4 :(得分:1)

我遇到了同样的问题,但现在已经解决了: 只需在maven命令后添加-Dcobertura.report.format=xml即可。它应该工作

答案 5 :(得分:0)

使用2.6插件我有同样的问题。

我发现当我指定这两种类型时,我只得到了html。

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

但是当我只指定xml时,我会得到一个xml报告。

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

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

另一位用户建议创建两个执行。我试过没有成功(意思是我得到了html,但没有成功)。

答案 6 :(得分: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>

这对我有用:可能的原因是它是最新版本的cobertura-maven-plugin(2.7)

答案 7 :(得分:0)

将Cobertura整合到Maven有两种方法。

  1. 将Cobertura放入pom文件的 build 部分,然后你必须执行 mvn clean cobertura:cobertura 来生成报告。如果您配置了XML和HTML,那么您将获得两个报告。
  2. 将Cobertura放入pom文件的报告部分,然后您必须执行 mvn clean site 以生成报告。如果您配置了XML和HTML,那么您将获得两个报告。此外,您将获得一个生成的站点(开放目标/站点/ index.html),其中包含所有报告,例如Coberture,Checkstyle,......