2015-07-13 135 views
13

在我的java項目中,我生成了與其他類一樣在相同包文件夾中的類。我想配置jacoco maven插件來排除那些生成的類,並且只使用main/src/java文件夾中的類(不是src/main/java生成)排除jacoco覆蓋率報告中的文件夾

項目結構:
src/main/java/COM /公司/ JOHN/Good.java < ----這包括
的src/main/java的生成/ COM /公司/ JOHN/AutoGeneratedClass.java < ----這排除

<plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.5.201505241946</version> 
      <configuration> 
       <includes> 
       </includes> 
       <excludes> 
        <exclude>**/*Dto.*</exclude> 
       </excludes> 
      </configuration> 
      <executions> 
       <execution> 
        <id>default-prepare-agent</id> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>default-report</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>default-check</id> 
        <goals> 
         <goal>check</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

我知道,1選項是將前綴添加到生成的類fi _並將其用於過濾,但我想知道是否有其他選擇。如何指定源項目文件夾(src/main/java)並因此排除所有其他文件夾?插件僅基於包名嗎?

回答

9

我認爲這是不可能的,因爲你編譯的類在目標中的同一目錄中。 Jacoco需要編譯的類,因此您無法對源進行過濾。

您可以通過設置排除路徑排除Jacoco報告中的類,但值應該是相對於目錄target/classes /的已編譯類的路徑。

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <configuration> 
     <excludes> 
      <exclude>**/*.class</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

最好的解決方案是在特定的包中生成類。但也許你不能。

+0

感謝您回覆水壩並指向target/classes /目錄 – troger19

4

只要做到以下解決了我忽略包而不是文件的問題。

<configuration> 
    <excludes> 
     <exclude>**/basepkg/subpkg1/subpkg2/*</exclude> 
    </excludes> 
</configuration> 
相關問題