Ява.ленг.Исключение OutOfMemoryError: Java для кучи пространства в Maven
когда я запускаю тест maven, java.ленг.Исключение OutOfMemoryError происходит. Я гуглю его для решений и попытался export MAVEN_OPTS=-Xmx1024m
, но это не сработало.
Кто-нибудь знает другие решения этой проблемы ,кстати я использую maven 3.0
спасибо заранее
вставьте сообщение об ошибке здесь при запуске "mvn test-e"
Failed tests: warning(junit.framework.TestSuite) testDefaultPigJob_1(com.snda.dw.pig.impl.DefaultPigJobLocalTest) testDefaultPigJob_2(com.snda.dw.pig.impl.DefaultPigJobLocalTest) Tests run: 11, Failures: 3, Errors: 0, Skipped: 0 10/11/01 13:37:18 INFO executionengine.HExecutionEngine: Connecting to hadoop fi le system at: file:/// [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 30.063s [INFO] Finished at: Mon Nov 01 13:37:18 PDT 2010 [INFO] Final Memory: 3M/6M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2. 5:test (default-test) on project dw.pig: There are test failures. [ERROR] [ERROR] Please refer to E:CodeJavaworkspacedw.pigtargetsurefire-reports fo r the individual test results. [ERROR] -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal o rg.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on project dw.pig: There are test failures. Please refer to E:CodeJavaworkspacedw.pigtargetsurefire-reports for the 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) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu ild(LifecycleStarter.java:183) at 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) 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(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) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java: 352) Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures . Please refer to E:CodeJavaworkspacedw.pigtargetsurefire-reports for the in dividual test results. at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugi n.java:629) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default BuildPluginManager.java:107) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor .java:195) ... 19 more [ERROR] [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please rea d the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
8 ответов:
когда я запускаю тест maven, java.ленг.Исключение OutOfMemoryError происходит. Я google it для решений и попытался экспортировать MAVEN_OPTS= - Xmx1024m, но это не сработало.
задание
Xmx
варианты с помощьюMAVEN_OPTS
работает, он настраивает JVM, используемый для запуска Maven. Это, как говорится, maven-surefire-плагин вилки новый JVM по умолчанию, и вашMAVEN_OPTS
таким образом не передаются.чтобы настроить размер JVM, используемого maven-surefire-плагин, вы бы либо должны:
- изменить
forkMode
доnever
(что не очень хорошая идея, потому что Maven не будет изолирован от теста) ~или~- использовать
argLine
(правильный путь):в последнем случае, что-то вроде этого:
<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
опять .
Я решил эту проблему на моей стороне двумя способами:
добавление этой конфигурации в pom.xml
<configuration><argLine>-Xmx1024m</argLine></configuration>
переключиться на используемый JDK 1.7 вместо 1.6
чтобы временно обойти эту проблему, я нашел следующий самый быстрый способ:
export JAVA_TOOL_OPTIONS="-Xmx1024m -Xms1024m"
для того чтобы решить на Java.ленг.OutOfMemoryError: Java heap space в Maven, попробуйте настроить ниже конфигурации в 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>