MavenでOutOfMemoryErrorが出たときの解決方法
MavenでOutOfMemoryErrorが出たときの解決方法です。
Maven2で作ったプロジェクトの規模が大きくなってきたこともあり、MavenコマンドでOutOfMemoryErrorが出ました。
実行したコマンドは下記です。
mvn clear install
クラス数は約730。コンパイル中にOutOfMemoryErrorが発生。原因はJava heap spaceによるもの。
ここでは MavenでOutOfMemoryErrorが出たときの解決方法 を紹介します。
環境変数MAVEN_OPTSを設定する
MavenでOutOfMemoryErrorが出たら、環境変数に「MAVEN_OPTS」を設定します。MAVEN_OPTSは、Maven2を実行しているJVMに対して、VMパラメータを設定することができます。
Java heap spaceの場合
エラーが「Java heap space」によるものの場合、ヒープサイズが不足しているので、増やしてあげます。ヒープサイズは、実行中のオブジェクトなどのデータを格納するために使われます。
export MAVEN_OPTS='-Xmx1024m'
PermGen spaceの場合
エラーが「PermGen space」によるものの場合、パーマネント領域が不足しているので、増やしてあげます。パーマネント領域は、クラス情報などをロードするために使われます。
export MAVEN_OPTS='-XX:MaxPermSize=1024m'
Windowsの場合
Windowsの場合、下図のような設定をしておけば、OutOfMemoryErrorは回避できると思いますよ。
- 変数名:MAVEN_OPTS
- 変数値:-Xmx1024m -XX:MaxPermSize=1024m
まとめ
MavenでOutOfMemoryErrorが出たときの解決方法を紹介しました。
筆者の環境は、メモリ4Gしかない低スペックのWindows10搭載PCでしたが、上記の設定でOutOfMemoryErrorは回避できました。ただ、Eclipseを起動しているとOutOfMemoryErrorになったので、メモリが厳しい場合には、余計なアプリはすべて停止してから実行した方がいいかも。物理メモリが不足している場合には、メモリ増設して対応くださいね。
おつかれさまでした。