1. ホーム
  2. java

[解決済み] java.lang.OutOfMemoryError: MavenにおけるJavaのヒープ空間

2022-06-19 05:14:22

質問

maven testを実行すると。 java.lang.OutOfMemoryError が起こる。ググって解決策を探し、試行錯誤した結果 export MAVEN_OPTS=-Xmx1024m が、うまくいかなかった。 この問題に対する他の解決策をご存知の方はいらっしゃいますか?maven 3.0を使用しています。

実行時のエラーメッセージをここに貼り付けます。 mvn test -e

テストに失敗しました。
  警告(junit.framework.TestSuite$1)
  testDefaultPigJob_1(com.snda.dw.pig.impl.DefaultPigJobLocalTest)
  testDefaultPigJob_2(com.snda.dw.pig.impl.DefaultPigJobLocalTest)

テスト実行数:11、失敗数:3、エラー数:0、スキップ数:0

10/11/01 13:37:18 INFO executionengine.HExecutionEngine: Connecting to hadoop fi.
ルシステムは次のとおりです: file:///
[INFO] ------------------------------------------------------------------------
[info] ビルドに失敗しました。
[INFO] ------------------------------------------------------------------------
[INFO] 合計時間:30.063s
[INFO] で終了しました。2010年11月1日(月)13:37:18 PDT
[INFO] 最終メモリ:3M/6M
[INFO] ------------------------------------------------------------------------
[ERROR] ゴール org.apache.maven.plugins:maven-surefire-plugin:2 の実行に失敗しました。
5:test (default-test) on project dw.pig: テストに失敗しています。
ERROR] [エラー
[ERROR] Please refer to E:\CodeJava¥workspace¥dw.pigtarget¥urefire-reports fo
r 個々のテスト結果。
[ERROR] -> [ヘルプ1].
org.apache.maven.lifecycle.LifecycleExecutionException.LifecycleExecutionException.LifecycleExecutionException.LifecycleExecutionException: ゴール実行に失敗しました。
rg.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on project
 dw.pig: テストに失敗しています。

Please refer to E:\CodeJava⇄workspace⇄dw.pig
in dividual test results.
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:199)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:148)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:140)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje(ライフサイクルモジュールビルダー)
ct(LifecycleModuleBuilder.java:84)
        org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct(ライフサイクルモジュールビルダー.java:84)
ct(LifecycleModuleBuilder.java:59)
        org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleModuleBuilder.java:59)
ild(LifecycleStarter.java:183)を実行します。
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycle
eStarter.java:161)を実行します。
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:314)にて。
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:151)にて。
        org.apache.maven.cli.MavenCli.execute(MavenCli.java:445)で実行します。
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:168)にて。
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:132)(英語)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:290)
        at org.codehaus.plexus.classworlds.launcher.launcher(Launcher.jav
a:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
352)
原因:org.apache.maven.plugin.MojoFailureException。テストの失敗があります
.

in dividual test results for the E:\CodeJavaworkspace.Pigtargetsurefire-reports を参照してください。
in dividual test results.
        at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugi)
n.java:629)
        org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(デフォルト
BuildPluginManager.java:107)。
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:195)
        ... さらに19
ERROR] [エラー] [エラー] [エラー] [エラー] [エラー
[ERROR] -Xスイッチを使用してMavenを再実行し、完全なデバッグログを有効にします。
ERROR] [ERROR
[ERROR] エラーおよび可能な解決策の詳細については、以下の記事を参照してください。
をご覧ください。
[ERROR] [ヘルプ 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc


どのように解決するのですか?

<ブロッククオート

mavenのテストを実行すると、java.lang.OutOfMemoryErrorが発生します。私はそれを解決するためにグーグルし、MAVEN_OPTS=-Xmx1024mをエクスポートしようとしましたが、それはうまくいきませんでした。

を設定すると Xmx オプションを使用して MAVEN_OPTS を使用すると、Mavenの起動に使用されるJVMを構成することができます。とはいえ、maven-surefire-pluginの フォーク はデフォルトで新しいJVMをフォークし、あなたの MAVEN_OPTS は渡されません。

maven-surefire-pluginが使用するJVMのサイジングを設定するためには、以下のどちらかを行う必要があります。

  • を変更します。 forkMode never (Mavenがテストから分離されないので、これはあまり良いアイデアではありません) ~または~。
  • を使用します。 argLine パラメータを使用します (正しい方法)。

後の場合、こんな感じ。

<configuration>
  <argLine>-Xmx1024m</argLine>
</configuration>

しかし 私はここでStephenに同意する傾向があると言わなければなりません。あなたのテストの1つに何か間違っている可能性が非常に高く、より多くのメモリを与えることがあなたの問題を解決する(隠す)ための正しい解決策であるとは思えません。

リファレンス