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

IntelliJ与Jenkins中Maven项目构建报StackOverflowError求助

Maven构建StackOverflowError问题排查与解决

问题现象

使用IntelliJ 2022.3.1构建Maven项目时抛出java.lang.StackOverflowError,升级IntelliJ版本后问题仍未解决,Jenkins构建也出现相同错误。错误栈中org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext重复出现500次,具体错误日志如下:

Exception in thread "main" java.lang.StackOverflowError
        at java.lang.ThreadLocal.get(ThreadLocal.java:161)
        at org.fusesource.jansi.Ansi.isEnabled(Ansi.java:172)
        at org.fusesource.jansi.Ansi.ansi(Ansi.java:192)
        at org.apache.maven.shared.utils.logging.AnsiMessageBuilder.<init>(AnsiMessageBuilder.java:45)
        at org.apache.maven.shared.utils.logging.MessageUtils.level(MessageUtils.java:163)
        at org.slf4j.impl.MavenSimpleLogger.renderLevel(MavenSimpleLogger.java:50)
        at org.slf4j.impl.SimpleLogger.log(SimpleLogger.java:277)
        at org.slf4j.impl.SimpleLogger.info(SimpleLogger.java:480)
        at org.apache.maven.cli.logging.Slf4jLogger.info(Slf4jLogger.java:59)
        at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:464)
        at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
        at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
        // 以下重复500次相同行

解决方案

1. 锁定plexus-archiver依赖版本

该问题核心是依赖树中存在plexus-archiver版本冲突,导致归档逻辑出现无限递归:

  • 执行命令查看依赖树中的版本分布:
    mvn dependency:tree -Dincludes=org.codehaus.plexus:plexus-archiver
    
  • 在项目pom.xml的dependencyManagement节点中统一锁定稳定版本(推荐3.7.0+):
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-archiver</artifactId>
          <version>3.8.0</version>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

2. 清理构建缓存

  • 本地环境:删除项目target目录,以及本地Maven仓库中~/.m2/repository/org/codehaus/plexus/plexus-archiver文件夹,重新执行mvn clean install
  • Jenkins环境:构建前添加clean步骤,清空工作区缓存后再执行构建

3. 检查归档插件配置

排查maven-assembly-plugin、maven-jar-plugin等插件的配置,确认是否存在循环包含目录的情况(例如将父目录递归包含进子归档包),这种配置会触发无限遍历导致栈溢出,修正为正确的目录包含规则。

内容的提问来源于stack exchange,提问作者akhila np

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:43:19