Mavenテストを実行すると、Java.lang.OutOfMemoryErrorが発生します。私は解決策を求めてグーグルでexport MAVEN_OPTS=-Xmx1024m
を試みましたが、うまくいきませんでした。誰もがこの問題の他の解決策を知っています、ところで私はmaven 3.0を使用しています
前もって感謝します
「mvn test -e」を実行するときにエラーメッセージをここに貼り付けます
失敗したテスト: warning(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:hadoop fi leシステムへの接続:file:/// [INFO] ------------- -------------------------------------------------- --------- [INFO]ビルド障害 [INFO] ----------------------- ------------------------------------------------- [情報]合計時間:30.063s [情報]終了日:月11月1日13:37:18 PDT 2010 [情報]最終メモリ:3M/6M [INFO] --------------------------------------------- --------------------------- [エラー]ゴールの実行に失敗しましたorg.Apache.maven.plugins:maven-surefire -plugin:2。 5:test(default-test)on project dw.pig:テストの失敗があります。 [エラー] [.___ _。] [エラー] E:\ Code\Java\workspace\dw.pig\target\surefire-reports for r個々のテスト結果を参照してください。 [エラー]-> [ヘルプ1] org.Apache.maven.lifecycle.LifecycleExecutionException:ゴールo rg.Apache.maven.plugins:maven-surefire-plugin:2.5:test(デフォルトテスト)の実行に失敗しましたon project dw.pig:テストエラーがあります。 inについてはE:\ Code\Java\workspace\dw.pig\target\surefire-reportsを参照してください 個々のテスト結果。 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) at org.Apache.maven.lifecycle.internal。ライフシーcleModuleBuilder.buildProje ct(LifecycleModuleBuilder.Java:59) at org.Apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu ild(LifecycleStarter.Java:183) org.Apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl eStarter.Java:161) at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java: 314) at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:151) at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:445) org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:168) at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:132) Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 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.launch(Launcher.jav a:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (La uncher.Java:409) org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java: 352) Caused by:org.Apache.maven.plugin.MojoFailureException:テストの失敗があります 。 E:\ Code\Java\workspace\dw.pig\target \を参照してくださいorg.Apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugi n.Java:629)[.____での 個別のテスト結果のsurefire-reports。 。] org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default BuildPluginManager.Java:107) at org.Apache.maven.lifecycle.internal.MojoExecutor.exe cute(MojoExecutor 。Java:195) ... 19 more [ERROR] [ERROR] -Xスイッチを使用してMavenを再実行して有効にします完全なデバッグロギング。 [エラー] [エラー]エラーおよび可能な解決策の詳細については、次の記事を再 dしてください: [エラー] [ヘルプ1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureExc
Mavenテストを実行すると、Java.lang.OutOfMemoryErrorが発生します。私はそれを解決のためにグーグルで検索し、MAVEN_OPTS = -Xmx1024mをエクスポートしようとしましたが、うまくいきませんでした。
MAVEN_OPTS
を使用してXmx
オプションを設定すると機能しますが、Mavenの起動に使用されるJVMを構成します。そうは言っても、maven-surefire-plugin forks はデフォルトで新しいJVMなので、MAVEN_OPTS
は渡されません。
Maven-surefire-pluginが使用するJVMのサイズを設定するには、次のいずれかを行う必要があります。
後者の場合、次のようになります。
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
しかし私はここでスティーブンに同意する傾向があると言わざるを得ません。より多くのメモリを提供することが、問題を「解決」(非表示?)するための適切なソリューションです。
(私のような)Mavenを初めて使用する場合は、pomのビルドセクションに含まれる設定全体がここにあります。乾杯。
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
</plugin>
</plugins>
</build>
可能性としては、Mavenの実行を要求した単体テストのいずれかに問題がある可能性があります。
そのため、ヒープサイズをいじるのは間違ったアプローチです。代わりに、OOMEの原因となったユニットテストを調べて、それがユニットテストの障害なのか、それがテストしているコードなのかを把握する必要があります。
スタックトレースを確認することから始めます。存在しない場合は、mvn ... test
オプションを指定して-e
を再度実行します。
この問題を一時的に回避するには、次の方法が最も簡単な方法であることがわかりました。
export Java_TOOL_OPTIONS="-Xmx1024m -Xms1024m"
私は2つの方法で私の側でこの問題を解決しました:
この構成をpom.xmlに追加する
<configuration><argLine>-Xmx1024m</argLine></configuration>
1.6ではなく使用済みのJDK 1.7に切り替えます
Java.lang.OutOfMemoryError:MavenのJavaヒープスペースを解決するには、pomで以下の構成を構成してください。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<argLine>-XX:MaxPermSize=500M</argLine>
</configuration>
</plugin>