当前位置: 代码网 > it编程>编程语言>Java > Lombok不生效怎么办?排查编译错误与版本兼容问题

Lombok不生效怎么办?排查编译错误与版本兼容问题

2026年08月04日 Java 我要评论
lombok不生效现象在 build/rebuild 时,提示 lombok 不生效:java: you aren’t using a compiler supported by lomb

lombok不生效

现象

build/rebuild 时,提示 lombok 不生效:

java: you aren’t using a compiler supported by lombok, so lombok will not work and has been disabled.

java: jps incremental annotation processing is disabled. compilation results on partial recompilation may be inaccurate. use build process "jps.track.ap.dependencies" vm flag to enable/disable incremental annotation processing environment.

第二种显示,附加代码的注解会失效,通过设置属性 -djps.track.ap.dependencies 来启用或禁用(通常的解决办法是设为 false)

原因

使用的lombok版本和idea版本不兼容。idea新版本是使用代理的方式来进行编译。(ide层面的问题,通常是不推荐修改的)

解决办法

升级lombok版本为最新版~

<dependency>
    <groupid>org.projectlombok</groupid>
    <artifactid>lombok</artifactid>
    <version>1.18.22</version>
    <scope>provided</scope>
</dependency>

多模块项目的所有 lombok 都应该进行升级

原始类型boolean下isxxx不生效

原始类型的布尔类型中的 get() 方法是由 is 开头的 (java beans 规定)

  • 在 bean 类中, 不要使用原始类型
  • 不要用 is 开头, 设置属性值
@data
public class testbody {
	private boolean flag;
	private boolean flag0;
	private boolean isflag1; // 会生成 isflag1() 方法, 变相忽略掉了 is 前缀
	private boolean flag2;

	public boolean isflag0() {
		return flag0;
	}

	public void setflag0(boolean flag0) {
		this.flag0 = flag0;
	}
}

gradle 下 lombok 不生效

gradle 相比 maven 需要再补充一个依赖项, 叫 annotationprocessor

  • 添加 annotationprocessordependencies
repositories {
	mavencentral()
}
dependencies {
	compileonly 'org.projectlombok:lombok:1.18.32'
	annotationprocessor 'org.projectlombok:lombok:1.18.32' // add
	
	testcompileonly 'org.projectlombok:lombok:1.18.32' // 测试的需要单独加入
	testannotationprocessor 'org.projectlombok:lombok:1.18.32' // add 测试的需要单独加入
}

批量 delombok

操作方法比较隐蔽, 记录一下

在 idea 中可以选中包名 (路径), 然后将该包下的所有使用 lombok 注解的类, 转换为普通类,

  1. 选中包名
  2. ctrl+shift+a 调出 action 面板
  3. 输入 delombok
  4. 选中 all lombok annotations

gradle下发布源码包报错

library source does not match the bytecode for class xxx

解决方法是改用插件方式引入 lombok (之前是依赖方式)

plugins {
  id "io.freefair.lombok" version "8.6"
}

(如果找不到依赖, 使用下面的方式加镜像)

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "io.freefair.gradle:lombok-plugin:8.6"
  }
}

apply plugin: "io.freefair.lombok"

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com