在我的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),从而排除所有其他文件夹?该插件是否仅基于包名称?
答案 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>