From 206adbff6cb2ac41bda75a963e1ebcabae2d8203 Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Fri, 23 Oct 2026 12:57:03 +0800 Subject: [PATCH] =?UTF-8?q?chore(build):=20=E9=A1=B9=E7=9B=AE=20JDK=20?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E4=B8=BA=2017=EF=BC=8C=E4=BF=AE=E6=AD=A3=20.?= =?UTF-8?q?sdkmanrc=20=E7=9A=84=E8=BF=87=E6=9C=9F=E7=BB=93=E8=AE=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原先钉的是 JDK 8,注释里写「lombok 1.18.20 不支持 JDK 17」。实测不成立: JDK 17 下 `mvn -o clean compile` 与 158 条 ai 测试全绿;真正炸的是 JDK 21 (NoSuchFieldError: JCTree$JCImport does not have member field 'qualid')。 本机 sdkman 全局默认已切到 21,所以按项目固定 17,不动 sdk default。 --- .sdkmanrc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.sdkmanrc b/.sdkmanrc index 77c3c31..473aac6 100644 --- a/.sdkmanrc +++ b/.sdkmanrc @@ -1,13 +1,14 @@ # 本模块(团委后端)固定工具链版本,由 sdkman 管理。 # # 为什么要固定: -# - 项目是 Spring Boot 2.5.4 + 1.8,lombok 由父 POM 管到 -# 1.18.20,不支持 JDK 17,用默认 JDK 17 编译必然失败。 -# - 本机 sdkman 全局默认是 java 17.0.20-tem(TmsERP 等其它项目在用), -# 所以只能按项目固定,不能改 sdk default。 +# - 项目是 Spring Boot 2.5.4 + 1.8(编译目标 1.8)。 +# - 本机 sdkman 全局默认是 java 21,而 lombok 1.18.20(父 POM 钉的)在 JDK 21 上 +# 编译直接炸:NoSuchFieldError: JCTree$JCImport does not have member field 'qualid'。 +# JDK 17 下这套组合验证过(mvn -o clean test 全绿),故按项目固定 17。 +# - 不能改 sdk default:TmsERP 等其它项目还在用 21。 # # 用法:进入本目录即自动切换(~/.sdkman/etc/config 里 sdkman_auto_env=true)。 # 非交互式 shell(脚本/CI)需显式执行: # source ~/.sdkman/bin/sdkman-init.sh && sdk env -java=8.0.504+1-tem +java=17.0.20-tem maven=3.9.16