2012-02-22 85 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> 
相關問題