2016-10-30 150 views
0

對於我小的Java/Maven的應用程序,我在我的pom.xml使用JaCoCo爲下:JaCoCo報告格式

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <version>0.7.6.201602180812</version> 
     <configuration> 
     <destFile>${basedir}/target/coverage-reports/jacoco.exec</destFile> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>prepare-agent</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>report</id> 
      <phase>package</phase> 
      <goals> 
      <goal>report</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

只要我不使用<destFile>參數,在target/site/jacoco文件夾的默認報告正確地以XML,CSV和HTML格式生成。但是,當我使用<destFile>元素來更改生成報告的默認文件夾時,只生成jacoco.exec文件,而沒有其他文件。我如何更改報告文件夾以及以csv,xml和html格式獲取報告?

回答

0

使用destFile參數,您更改了目標將寫入執行數據文件的位置。默認情況下,這是${project.build.directory}/jacoco.exec,意思是(仍然默認)target/jacoco.exec。但是,report目標需要在dataFile參數中傳遞執行文件的路徑,當然,該參數默認爲${project.build.directory}/jacoco.exec,以便它們同步。因此,如果您想要更改此執行文件的路徑,則需要匹配這兩個參數。爲了不重複的路徑,你可以使用一個Maven屬性來做到這一點:

<properties> 
    <jacoco.execution.file>${project.build.directory}/coverage-reports/jacoco.exec</jacoco.execution.file> 
</properties> 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <version>0.7.7.201606060606</version> 
     <configuration> 
     <destFile>${jacoco.execution.file}</destFile> 
     <dataFile>${jacoco.execution.file}</dataFile> 
     </configuration> 
     <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> 

注意,這不會改變JaCoCo的輸出目錄的報告;這只是改變執行文件的路徑。爲此,您可以使用outputDirectory參數:

報告的輸出目錄。請注意,只有在從命令行或默認構建生命週期運行目標時,此參數纔是相關的。如果目標作爲網站生成的一部分間接運行,則將使用在Maven Site Plugin中配置的輸出目錄。

,並具有以下配置元素補充說:

<configuration> 
    <!-- rest of your JaCoCo configuration --> 
    <outputDirectory>${project.build.directory}/coverage-reports/jacoco</outputDirectory> 
</configuration> 

這將確保所有的HTML,XML的,和CSV報告target/coverage-reports/jacoco下產生。請注意,啓動mvn site時,此配置將不會用作Maven網站生成的一部分。在生成網站期間,您需要配置maven-site-pluginoutputDirectory

+0

再次感謝你:) – user1107888