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

JaCoCo无法忽略Lombok生成代码问题求助

解决JaCoCo统计Lombok生成代码覆盖率为0的问题

以下是几个经过验证的可行解决方案,按优先级尝试:

1. 确保lombok.config配置正确且生效

  • 把lombok.config放在项目根目录(和pom.xml/settings.gradle同级),内容必须包含:
    config.stopBubbling = true
    lombok.addLombokGeneratedAnnotation = true
    
  • 解释:config.stopBubbling避免父目录的配置覆盖当前设置,lombok.addLombokGeneratedAnnotation会让Lombok给所有生成的方法(getter/setter/Builder等)加上@lombok.Generated注解,JaCoCo默认会忽略带该注解的代码。
  • 关键操作:修改配置后,必须执行clean + 重新编译,否则旧的编译产物不会应用新配置。

2. 让JaCoCo明确识别Lombok的@Generated注解

部分JaCoCo版本默认只识别javax.annotation.Generated,需要显式配置兼容lombok.Generated:

Maven项目配置(jacoco-maven-plugin)

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.10</version> <!-- 推荐使用0.8.7+版本 -->
  <configuration>
    <!-- 可选:直接排除Lombok生成的内部类,比如Builder -->
    <excludes>
      <exclude>**/*$Builder*</exclude>
      <exclude>**/*$Lombok*</exclude>
    </excludes>
    <!-- 配置识别Lombok的Generated注解 -->
    <rules>
      <rule>
        <element>CLASS</element>
        <excludes>
          <exclude>@lombok.Generated</exclude>
        </excludes>
      </rule>
      <rule>
        <element>METHOD</element>
        <excludes>
          <exclude>@lombok.Generated</exclude>
        </excludes>
      </rule>
    </rules>
  </configuration>
</plugin>

Gradle项目配置

jacoco {
  toolVersion = "0.8.10"
}

jacocoTestReport {
  afterEvaluate {
    // 排除Lombok生成的Builder等内部类
    classDirectories.setFrom(files(classDirectories.files.collect {
      fileTree(dir: it, exclude: [
        "**/*$Builder*",
        "**/*$Lombok*"
      ])
    }))
  }
  reports {
    xml.required = true
    html.required = true
  }
}

3. 升级Lombok和JaCoCo版本

旧版本的Lombok和JaCoCo存在兼容性问题,导致注解识别失效:

  • Lombok版本升级到1.18.20+
  • JaCoCo版本升级到0.8.7+
    新版本对注解的处理逻辑更完善,能大概率解决配置不生效的问题。

4. 兜底方案:用SuppressWarnings让JaCoCo忽略生成代码

如果以上方法都无效,在lombok.config中添加:

lombok.addSuppressWarnings = jacoco.exclude

Lombok会给所有生成的方法加上@SuppressWarnings("jacoco.exclude"),JaCoCo会自动忽略这些方法的覆盖率统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:57:17