You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加未使用的Lombok依赖引发编译间歇性StackOverflowError问题咨询

问题解答

1. 为何仅添加Lombok依赖(未使用注解)会导致编译时StackOverflowError?

Lombok依赖自带注解处理器,哪怕你没在代码里用任何Lombok注解,只要它出现在编译classpath中(provided scope仅限制运行时不包含,编译阶段仍会加载),Java编译器就会初始化这个处理器。结合你用的Java 21、老旧的Maven Compiler Plugin 3.1,以及Spring Boot 2.7的组合,部分旧版本Lombok的注解处理器在初始化时存在递归逻辑或兼容性问题,再加上编译缓存、处理器加载顺序的随机性,就会间歇性触发栈溢出。

2. 是否与注解处理器冲突(例如与<proc>only</proc>)相关?

是的,大概率有关。<proc>only</proc>会让编译器跳过常规编译,仅执行注解处理器逻辑。这种模式下,Lombok的处理器被加载后,可能和Log4j的注解处理器在初始化、类扫描阶段产生冲突;另外你在process-classes阶段自定义执行该配置,可能导致注解处理逻辑被重复触发,叠加Lombok处理器的兼容性问题,最终引发栈溢出。哪怕临时移除<proc>only</proc>仍出现失败,可能是编译缓存未彻底清理,或者Lombok处理器本身的初始化bug仍存在。

3. 是否有办法完全阻止Lombok干扰注解处理?

有几种可行方式:

  • Maven中明确指定允许的注解处理器:在maven-compiler-plugin里配置annotationProcessors参数,只加入Log4j的处理器,完全排除Lombok的处理器被加载。
  • 从编译classpath移除Lombok注解处理器:通过Maven依赖排除,或者在编译器插件中配置excludeArtifactIds,把Lombok的处理器排除在外。
  • IntelliJ中手动关闭Lombok注解处理:进入Build, Execution, Deployment -> Compiler -> Annotation Processors,取消勾选Enable annotation processing,或者在Processor path中移除Lombok相关依赖。

4. 如何彻底解决该问题?

推荐按以下步骤操作:

  1. 升级Maven Compiler Plugin版本:你当前用的3.1版本过于老旧,对Java 21支持极差,建议升级到3.11.0及以上(Spring Boot 2.7官方推荐的兼容版本)。
  2. 升级Lombok到兼容Java 21的版本:选择Lombok 1.18.30及以上版本,这些版本修复了大量Java 17+的兼容性问题,包括初始化时的栈溢出bug。
  3. 明确管控注解处理器列表:在maven-compiler-plugin中配置annotationProcessors,只指定Log4j的注解处理器(比如org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor),避免Lombok处理器被意外加载。示例配置:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version>
  <configuration>
    <source>21</source>
    <target>21</target>
    <annotationProcessors>
      <annotationProcessor>org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor</annotationProcessor>
    </annotationProcessors>
  </configuration>
</plugin>
  1. 彻底清理编译缓存:执行mvn clean install -U强制更新依赖并清理所有缓存,同时在IntelliJ中执行File -> Invalidate Caches...清除IDE缓存。
  2. 检查自定义process-classes阶段配置:确认该阶段的注解处理逻辑是否必要,是否与默认编译阶段的处理重复,若重复可考虑调整或移除。

内容的提问来源于stack exchange,提问作者Yasin Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 18:13:15