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

Java1.8+Maven3.8.2环境下maven-compiler-plugin编译报StackOverflowError求助

问题根因

该报错核心是java.lang.StackOverflowError栈溢出,出现在JDK内置的javac编译器编译阶段,和maven-compiler-plugin插件版本无关:从错误堆栈可以看出,编译器在处理连续二元表达式(比如超长的字符串拼接、多层嵌套的运算/三元表达式)时,递归调用深度超过了JVM默认的栈大小上限,最终触发编译失败。

可尝试的解决方案

方案1:在maven编译插件中配置栈大小参数

直接在项目pom.xml的maven-compiler-plugin配置项中增加JVM栈参数,将栈上限调大即可,参考配置如下:

<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>
        <!-- 增加编译时JVM栈大小,可根据实际情况调整为16m/32m -->
        <compilerArgs>
            <arg>-J-Xss16m</arg>
        </compilerArgs>
    </configuration>
</plugin>

方案2:临时调整Maven运行的全局参数

如果不想改动pom文件,也可以直接设置MAVEN_OPTS环境变量调整全局栈大小:

  • Windows系统cmd执行:set MAVEN_OPTS=-Xss16m
  • Linux/Mac系统终端执行:export MAVEN_OPTS=-Xss16m
    设置完成后再执行mvn编译命令即可生效。

方案3:代码层面优化

如果调整栈参数后仍有报错,可以排查项目中是否存在超长的连续字符串拼接、嵌套层级过深的运算表达式,将过长的逻辑拆分为多段执行,从根源避免编译器递归深度过高。

内容的提问来源于stack exchange,提问作者Bernadette Feliciano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:48:01