在jacoco coverage报告中排除文件夹

时间:2015-07-13 12:25:36

标签: java maven jacoco generated

在我的java项目中,我生成了与其他类一样在相同包文件夹内的类。我想配置jacoco maven插件来排除那些生成的类,只使用main / src / java文件夹中的类(不是src / main / java生成的)

项目结构:
src / main / java / com / company / john / Good.java< ----这包括
src / main / java-generated / com / company / john / AutoGeneratedClass.java< ---- this exclude

q=colour Plus&fl=*,score

我知道,1个选项是将前缀附加到生成的类f.i. _并使用它进行过滤,但我想知道是否还有其他选项。如何指定源项目文件夹(src / main / java),从而排除所有其他文件夹?该插件是否仅基于包名称?

3 个答案:

答案 0 :(得分:15)

我认为这是不可能的,因为您编译的类在目标中的同一目录中。并且Jacoco需要编译的类,因此您无法对源进行过滤。

您可以通过设置排除路径来排除Jacoco报告中的类,但这些值应该是编译类相对于目录target / classes /的路径。

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

最好的解决方案是在特定包中生成类。但也许你不能。

答案 1 :(得分:6)

简单地执行以下操作解决了我忽略包而不是文件的问题。

<configuration>
    <excludes>
        <exclude>**/basepkg/subpkg1/subpkg2/*</exclude>
    </excludes>
</configuration>

答案 2 :(得分:2)

这就是我排除 Jooq 生成的任何类的方式

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>${jacoco-version}</version>
    <configuration>
      <excludes>
        <exclude>**/jooq/**/*.class</exclude>
      </excludes>
    </configuration>
</plugin>