JDK21与lombok插件的兼容性问题

最近在搭建一个demo项目。

基于老项目来配置,结果发生了一些错误。

java 复制代码
lombok 方法引用无效  找不到符号

[ERROR] Failed to execute goal 
       org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile)
        on project rc-platform: Resolution of annotationProcessorPath dependencies failed:
         For artifact {org.projectlombok:lombok:null:jar}: The version cannot be empty. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch
        to enable full debug logging.
[ERROR] 

[ERROR] Failed to execute goal
        org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile)
         on project rc-platform: Fatal error compiling: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member
          field 'com.sun.tools.javac.tree.JCTree qualid' -> [Help 1]
[ERROR] 

解决办法:

使用最新的 lombok 版本.

例如:

xml 复制代码
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.42</version>
            <optional>true</optional>
        </dependency>
    </dependencies>



    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.42</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <!--  在SpringBoot 的打包阶段不需要lombok-->
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

按照 stackoverflow 的说法:

The culprit is Lombok. The minimal Lombok version compatible with JDK 21 is 1.18.30.

链接:

https://stackoverflow.com/questions/77171270/compilation-error-after-upgrading-to-jdk-21-nosuchfielderror-jcimport-does-n

相关推荐
毕业设计70312 小时前
(免费领源码)基于node的学生公寓管理系统06412- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·mysql·node.js·maven·mybatis·express·b/s
用户0942485680312 小时前
第38章:从零构建JVM稳定性平台最小闭环
java·jvm
Java成神之路-16 小时前
深入理解 G1 Mixed GC:触发条件、完整流程与高频误区
jvm·g1垃圾回收算法
认真的小羽❅18 小时前
ThreadLocal 在虚拟线程间要小心
java·开发语言·jvm
今天的砖头有点烫手啊19 小时前
Java 8 Stream 原理拆解:惰性求值与并行流陷阱
java·jvm
用户0942485680319 小时前
第37章:JVM极端场景调优与生产故障复盘方法论
java·jvm
知守观19 小时前
同事的 SNAPSHOT 更新了,我三天后才拉到:Maven 更新检查被 _remote.repositories 静默跳过
java·后端·maven
南极企鹅21 小时前
生产环境gc文件分析
java·jvm·算法
知守观21 小时前
Maven SNAPSHOT 更新排查:-U 无效、clean 无用,问题在 _remote.repositories(附完整链路)
java·后端·maven
欣栀♡1 天前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm