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

如何为delombok代码添加@Generated注解,配置后不生效如何解决

你观察到的@Generated注解仅出现在编译后的class文件中、不输出到delombok生成的源码路径是预期行为,不属于Bug。

原因说明

Lombok的lombok.addLombokGeneratedAnnotation配置默认仅作用于编译期的字节码生成阶段,不会将该注解写入delombok输出的还原源码中,delombok默认只会还原业务代码对应的Lombok生成逻辑,不会附带编译期附加的注解类标记。

Jacoco覆盖率问题解决方案

方案1(推荐):直接基于字节码做覆盖率统计

Jacoco 0.8.0及以上版本原生支持识别字节码中Lombok生成的@Generated注解,会自动跳过所有带该注解的代码段,无需依赖delombok的源码。你只需确保Jacoco统计的target路径指向build/classes/java/main/即可,完全可以满足覆盖率排除Lombok生成代码的需求。
额外提醒:你描述中提到的@Genearated属于拼写错误,正确注解名为@Generated,注意排查相关配置里是否存在拼写失误。

方案2:强制delombok输出@Generated注解

如果你必须使用delombok生成的源码做覆盖率统计(比如需要源码级别的覆盖率结果展示),可以给delombok工具添加--format=generate运行参数:

  • Gradle(使用io.freefair.lombok插件)配置示例:
delombok {
    format = 'generate'
}
  • Maven(使用lombok-maven-plugin)配置示例:
<plugin>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven-plugin</artifactId>
    <version>${lombok.version}</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>delombok</goal>
            </goals>
            <configuration>
                <format>generate</format>
            </configuration>
        </execution>
    </executions>
</plugin>

配置完成后重新执行delombok任务,生成的源码中就会带上@Generated注解。

内容的提问来源于stack exchange,提问作者Gopal S Akshintala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:39:00