Ява.ленг.Исключение 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 102

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 опять .

Я решил эту проблему на моей стороне двумя способами:

  1. добавление этой конфигурации в pom.xml

    <configuration><argLine>-Xmx1024m</argLine></configuration>
    
  2. переключиться на используемый 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>

установите переменную окружения:

MAVEN_OPTS=" - Xmx1024m"

не только память. также увеличьте размер Перми, чтобы разрешить это исключение в maven, используйте эти переменные в переменной среды.

variable name: MAVEN_OPTS
variable value: -Xmx512m -XX:MaxPermSize=256m

пример :

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=500m"