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

使用Amazon Corretto 8构建Maven项目时出现StackOverflowError问题咨询

问题解答

1. Amazon Corretto 8是否内置Lombok?如何排除?

Amazon Corretto 8是OpenJDK的官方兼容发行版,本身不会内置Lombok。报错栈出现Lombok AST处理逻辑,大概率是你的Maven构建过程中,某个依赖或插件间接引入了Lombok的注解处理器(比如部分第三方库、Maven编译插件的依赖链里带了Lombok)。

解决方法:

  • 先排查依赖树:执行mvn dependency:tree -Dincludes=org.projectlombok:lombok,找到Lombok的引入来源,然后在对应的<dependency>里添加排除规则:
    <dependency>
      <groupId>xxx</groupId>
      <artifactId>xxx</artifactId>
      <version>xxx</version>
      <exclusions>
        <exclusion>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    
  • 强制控制编译期注解处理器:在maven-compiler-plugin里显式指定注解处理器路径,避免自动加载未知处理器:
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <!-- 仅使用指定的注解处理器,留空表示禁用所有自动加载的处理器 -->
        <annotationProcessorPaths>
        </annotationProcessorPaths>
      </configuration>
    </plugin>
    

2. 定位类循环依赖的工具

如果确认是类级别的循环依赖导致栈溢出,这些工具可以帮你定位:

  • IntelliJ IDEA 内置分析工具:打开项目后,执行Analyze -> Inspect Code,在检查配置里勾选Java -> Code maturity issues -> Cyclic dependencies,运行后会列出所有类间的循环依赖。
  • Eclipse Cycle Detector:安装Cycle Detector插件,右键项目选择Cycle Detector -> Find Cycles,可直观展示类/包的循环依赖链。
  • SpotBugs:集成到Maven构建中,它的CyclicClassDependency检测器会自动扫描并报告类间的循环依赖问题。
  • JDepend:专门的Java依赖分析工具,通过Maven插件引入后,执行mvn jdepend:generate生成HTML报告,其中会明确标记循环依赖的类和包。
  • SonarQube:静态代码扫描平台,将项目接入后,在代码质量报告里可找到Cyclic dependency between classes的问题项,附带详细的依赖链路。

内容的提问来源于stack exchange,提问作者Jalandar R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:12:41