排查Jenkins构建jar包失败(class lombok.javac.apt.LombokProcessor)【测试成功】

艺帆风顺 发布于 2025-04-03 16 次阅读


一、问题背景

使用jenkins构建jar包时,提示报错如下:

Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor

    [INFO] Changes detected - recompiling the module![INFO] Compiling 903 source files to /var/jenkins_home/workspace/yinling-dev-yinling-kpi/target/classes[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 9.465 s[INFO] Finished at: 2023-08-29T07:43:58Z[INFO] ------------------------------------------------------------------------Waiting for Jenkins to finish collecting data[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project kpi: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x79a9746f) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x79a9746f -> [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] [JENKINS] Archiving /var/jenkins_home/workspace/yinling-dev-yinling-kpi/pom.xml to yinling/kpi/1.0-SNAPSHOT/kpi-1.0-SNAPSHOT.pom[ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionExceptionchannel stopped推送通知{"markdown":{"content":"【yinling-dev-yinling-kpi】构建失败!!!😭n >构建用时:13 secn >[查看控制台](http://192.168.3.66:8888/job/yinling-dev-yinling-kpi/3/console)"},"msgtype":"markdown"}通知结果{"errcode":0,"errmsg":"ok"}项目运行结果[FAILURE]Finished: FAILURE

    二、问题排查

        可能的原因:

            项目使用了Lombok来优化Java代码

            但是JDK与Lombok的模块化导致在新的Java版本上编译会报错


      解决方法: 升级Lombok版本到支持当前JDK模块化的版本 降低JDK版本到Lombok支持的范围 尝试使用lombok.config文件配置 简化代码去除Lombok依赖进行测试

      三、问题处理

          jenkins的java默认路径为:/opt/java/openjdk/bin/java

          此时将jdk8直接拷贝至该路径,发现docker运行失败。

          随机尝试使用jdk11版本,jenkins启动成功,继续执行构建,发现存在其他报错

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project DynaminCost: Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags -> [Help 1]

          检查jenkins配置,全局工具配置

          手动指定jdk8版本的路径,不要使用默认路径,重新执行构建、问题解决。