バーチャルも、リアルも、充実に。

職業はWEB系エンジニア。趣味でボカロ文化を楽しんだり、プログラミングをしたりしています。

Maven環境で、ビルド時にOutofMemoryエラーが発生する時の対処法

Maven環境で、Java VMのヒープサイズが足りず、ビルド時にOutofMemoryエラーが発生する場合があります。
この場合、MacのターミナルとIntelliJで解決する方法をそれぞれ紹介します。

まず、Macターミナルの場合は、下記のコマンドで一時的にヒープサイズを増やし、解決することができます。

export MAVEN_OPTS=-Xmx3072m

自分の場合は3072m(3GB)を割り当てましたが、プロジェクト次第で、必要なメモリが違うので、増やしても失敗する時は、もう少し大きく割り当てて再ビルドしてみましょう。

また、IntelliJ上で解決する場合は、ググってみるとidea.vmoptionsファイル上の-Xmxの値を増やせば解決できるという回答もありましたが、ここで値を修正するのではなく、下のところの値を修正することで解決できました。

 (IntelliJ)Settings -> Build, Execution, Deployment -> Compiler -> Build process heap size (MBytes)

idea.vmoptions上でメモリを増やしても解決できない理由は、ビルド時のコンパイラーは別のJVMで起動するため、idea.vmoptionsで設定した基本オプションは効かないので、上の手順で別途設定が必要だそうです。

また、自分の場合は、こうしてメモリを増やしてビルドが成功する時は、ビルド完了まで5分もかからず、メモリ不足でビルドが失敗する時は、エラーでビルドが失敗するまで30分以上もかかったりしていました。 ビルドに時間がかかりすぎる場合なども、一旦キャンセルし、メモリを増やした後リトライすることも良いかもしれません。

<参考>
https://cwiki.apache.org/confluence/display/MAVEN/OutOfMemoryError
https://stackoverflow.com/questions/8581501/how-can-i-give-the-intellij-compiler-more-heap-space