You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jacoco无法排除类求助:Maven项目代码覆盖率配置问题

解决Jacoco Maven插件排除指定类的问题

我明白你在使用Jacoco统计代码覆盖率时遇到了无法排除指定类的困扰,别担心,这是个很常见的配置问题,我们只需要在Jacoco插件的配置里添加excludes节点就能搞定。

首先,给你补全并修改现有配置,你可以直接参考调整:

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.7.5.201505241946</version>
  <executions>
    <execution>
      <id>pre-my-test</id>
      <phase>pre-integration-test</phase>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
      <configuration>
        <append>true</append>
        <!-- 若想在收集覆盖率数据阶段就忽略这些类,可在此添加excludes -->
        <!-- <excludes>
          <exclude>**/不需要统计的类名.class</exclude>
        </excludes> -->
      </configuration>
    </execution>
    <!-- 建议添加报告生成阶段,在此配置排除规则最直接 -->
    <execution>
      <id>jacoco-generate-report</id>
      <phase>post-integration-test</phase>
      <goals>
        <goal>report</goal>
      </goals>
      <configuration>
        <!-- 核心:配置要排除的类 -->
        <excludes>
          <!-- 排除单个类:匹配所有包下的TargetClass.class -->
          <exclude>**/TargetClass.class</exclude>
          <!-- 排除整个包下的所有类:匹配com/example/utils下的所有.class文件 -->
          <exclude>**/com/example/utils/**/*.class</exclude>
          <!-- 排除所有以"Test"结尾的类 -->
          <exclude>**/*Test.class</exclude>
        </excludes>
      </configuration>
    </execution>
  </executions>
</plugin>

接下来给你解释几个关键细节:

  • 配置位置:通常在report目标的配置里添加excludes就足够了,这是在生成覆盖率报告时过滤掉不需要统计的类;如果希望在收集覆盖率数据阶段就完全忽略这些类,也可以在prepare-agent的配置里添加同样的excludes节点。
  • 通配符规则:
    • ** 表示任意层级的目录结构
    • * 表示任意长度的字符匹配
  • 版本兼容性:你使用的Jacoco 0.7.5版本已经完全支持excludes配置,不需要升级版本。

最后提醒你:配置的路径要对应编译后.class文件的路径,比如你的类全限定名是com.example.config.AppConfig,那么排除路径应该是**/com/example/config/AppConfig.class,或者用**/AppConfig.class匹配所有包下的同名类。

内容的提问来源于stack exchange,提问作者AbtPst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:52:13