【问题标题】:SpringBoot, Maven, Lombok StackOverflowErrorESCSpring Boot、Maven、Lombok StackOverflowError ESC
【发布时间】:2023-02-01 17:52:09
【问题描述】:

我有在 Windows 环境上成功构建的 Maven 项目。

C:\java\apache-maven-3.6.3\bin\mvn -DskipTests=true package -P prod

建立成功

但是当我试图在 Ubuntu 环境中执行相同的命令时

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project ics3: Fatal error compiling: java.lang.StackOverflowError -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project ics3: Fatal error compiling

Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1220)

Caused by: org.codehaus.plexus.compiler.CompilerException: java.lang.StackOverflowError
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:197)
Caused by: java.lang.StackOverflowError
    at lombok.javac.JavacAST.drill (JavacAST.java:506)

我试图在没有运气的情况下为 maven 设置与 Windows PC 上相同的内存

export MAVEN_OPTS="-Xmx3096m -XX:MaxPermSize=512m"

和export JAVA_OPTIONS="-Xmx4g"

我的 pom.xml 是

  <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>

Java 11,SpringBoot 2.7

【问题讨论】:

  • Lombok hook 到编译器中,可能会发生这些事情。你能没有龙目岛吗?
  • 你能提供一个触发 Stackoverflow 的 minimal reproducible example 吗?

标签: java spring-boot maven lombok


【解决方案1】:

MAVEN_OPTS="-Xms512m -Xmx2048m -Xss1024m" 修复了问题。甚至 -Xss1024k 也足够了。

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2022-11-20
    • 2017-05-12
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多