在Java Maven中发生了StackOverflowError

Java在使用Maven进行构建时,遇到StackOverflowError错误的解决方法记录如下。

    エラー内容
[ERROR] システム・リソースが不足しています。
[ERROR] 詳細は次のスタック・トレースで調査してください。
[ERROR] java.lang.StackOverflowError
    • 原因

 

    • これは初めから予測はついていた。他システムと連携するAPI関連のモジュールクラスが5万ステップに達するほど大きかったため。コードをなんとかするのが一番きれいな解決策だが、そうできない事情があったため今回は以下で対応

対応
2つの対応方法があります。

対応方法1
MAVENの環境変数でビルド時のStackサイズを増やす。
SET MAVEN_OPTS=-Xms256m -Xmx1024m -Xss2048k
-Xss2048kでStackサイズを指定しています。
対応方法2
pom.xml内でStackサイズをセットする。
※compilerArgsはmaven-compiler-plugin3.1以降で対応です

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<compilerArgs>
  <arg>-J-Xss2048k</arg>
</compilerArgs>
广告
将在 10 秒后关闭
bannerAds