Kotlin中Lombok @Builder注解失效问题求助
Kotlin项目中Lombok @Builder注解无效的解决方法
核心问题分析
你遇到的问题根源有两点:一是未显式引入Lombok依赖,仅靠插件无法确保依赖正确加载;二是插件版本不匹配(Kotlin插件2.0.0与freefair Lombok插件5.3.0版本差距过大,适配性不足)。
具体解决步骤
统一插件版本,消除适配冲突
Kotlin 2.0.0对应Gradle 8.x版本,需使用适配的freefair Lombok插件版本,比如8.6:plugins { id "org.jetbrains.kotlin.jvm" version "2.0.0" // 必须添加Kotlin JVM基础插件 id "org.jetbrains.kotlin.kapt" version "2.0.0" id 'org.jetbrains.kotlin.plugin.lombok' version '2.0.0' id("io.freefair.lombok") version "8.6" }显式引入Lombok依赖
即使插件提供了依赖管理,显式声明依赖能避免版本不一致问题,在dependencies块中添加:implementation 'org.projectlombok:lombok:1.18.34' kapt 'org.projectlombok:lombok:1.18.34'调整Kotlin类定义
Lombok的@Builder与Kotlindata class的自动生成逻辑存在冲突,若坚持用Lombok Builder,建议去掉data关键字:@Builder class UserDTO(/*...fields...*/)若需要
data class的特性,更推荐使用Kotlin原生的Builder实现,比如:data class UserDTO(val name: String, val age: Int) { companion object { fun builder() = Builder() } class Builder { private var name: String = "" private var age: Int = 0 fun name(name: String) = apply { this.name = name } fun age(age: Int) = apply { this.age = age } fun build() = UserDTO(name, age) } }
内容的提问来源于stack exchange,提问作者LINQe
相关产品推荐
相关产品推荐

