Когда я запускаю тест maven, возникает ошибка java.lang.OutOfMemoryError. Я искал решения в Google и пытался 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: подключение к hadoop fi файловая система по адресу: file: /// [ИНФОРМАЦИЯ] ----------------------------------------------- ------------------------- [ИНФОРМАЦИЯ] ОШИБКА СОЗДАНИЯ [ИНФОРМАЦИЯ] ----------------------------------------------- ------------------------- [INFO] Общее время: 30.063 сек. [ИНФОРМАЦИЯ] Окончание: Пн, 01 ноя, 13:37:18 PDT 2010 [ИНФОРМАЦИЯ] Конечная память: 3M / 6M [ИНФОРМАЦИЯ] ----------------------------------------------- ------------------------- [ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins: maven-surefire-plugin: 2. 5: тест (тест по умолчанию) в проекте dw.pig: есть ошибки тестирования. [ОШИБКА] [ОШИБКА] Пожалуйста, обратитесь к E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports fo r результаты индивидуальных тестов. [ОШИБКА] -> [Справка 1] org.apache.maven.lifecycle.LifecycleExecutionException: не удалось выполнить цель o rg.apache.maven.plugins: maven-surefire-plugin: 2.5: тест (тест по умолчанию) в проекте dw.pig: Есть ошибки при тестировании. Пожалуйста, обратитесь к E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports для in результаты индивидуальных тестов. в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 199) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 148) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 140) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje кт (LifecycleModuleBuilder.java:84) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje кт (LifecycleModuleBuilder.java:59) в org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu ILD (LifecycleStarter.java:183) в org.apache.maven.lifecycle.internal.LifecycleStarter.execute (Lifecycl eStarter.java:161) в org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:314) в org.apache.maven.DefaultMaven.execute (DefaultMaven.java:151) в org.apache.maven.cli.MavenCli.execute (MavenCli.java:445) в org.apache.maven.cli.MavenCli.doMain (MavenCli.java:168) в org.apache.maven.cli.MavenCli.main (MavenCli.java:132) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. Java: 39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces sorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) в org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Laun cher.java:290) в org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.jav а: 230) в org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (La uncher.java:409) в org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java: 352) Вызвано: org.apache.maven.plugin.MojoFailureException: есть сбои теста , Пожалуйста, обратитесь к E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports для in результаты индивидуальных тестов. в org.apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi n.java:629) в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (по умолчанию BuildPluginManager.java:107) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 195) ... еще 19 [ОШИБКА] [ОШИБКА] Перезапустите Maven, используя переключатель -X, чтобы включить полное ведение журнала отладки. [ОШИБКА] [ERROR] Для получения дополнительной информации об ошибках и возможных решениях, пожалуйста, d следующие статьи: [ОШИБКА] [Справка 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
java
maven
out-of-memory
zjffdu
источник
источник
Ответы:
Настройка
Xmx
параметров с помощьюMAVEN_OPTS
действительно работает, она настраивает JVM, используемую для запуска Maven. Это , как сказано, Maven-безошибочный-плагин - Форкс новый JVM по умолчанию, и вашMAVEN_OPTS
, таким образом , не прошло.Чтобы настроить размер JVM, используемого maven-surefire-plugin, вам необходимо либо:
forkMode
наnever
(что не очень хорошая идея, потому что Maven не будет изолирован от теста) ~ или ~argLine
параметр (правильно):В последнем случае примерно так:
Но я должен сказать, что я склонен согласиться со Стивеном в этом, очень вероятно, что что-то не так с одним из ваших тестов, и я не уверен, что увеличение объема памяти является правильным решением для «решения» (скрытия?) Вашей проблемы.
Ссылки
источник
forkMode
устарел: maven.apache.org/surefire/maven-surefire-plugin/…forkMode
устарел, но я думаю, что его нужно заменить только тем,forkCount
который имеет аналогичные функции. Один из способов использования MAVEN_OPTS -<argLine>${env.MAVEN_OPTS}</argLine>
это, по-видимому, не рекомендуется, поскольку он может варьироваться от компьютера к компьютеру ( stackoverflow.com/a/10463133/32453 ). Также обратите внимание, что если вы используете jacoco, вы должны установить argLine другим способом stackoverflow.com/questions/12269558/maven-jacoco-plugin-errorДля тех, кто плохо знаком с Maven (например, я), вот вся конфигурация, которая находится в разделе сборки вашего файла pom. Приветствия.
источник
Скорее всего, проблема в одном из модульных тестов, которые вы просили запустить Maven.
Таким образом, изменение размера кучи - неправильный подход. Вместо этого вы должны посмотреть на модульный тест, который вызвал OOME, и попытаться выяснить, является ли это ошибкой модульного теста или кода, который он тестирует.
Начните с просмотра трассировки стека. Если его нет, запустите
mvn ... test
снова с-e
опцией.источник
Чтобы временно обойти эту проблему, я обнаружил, что это самый быстрый способ:
источник
Я решил эту проблему со своей стороны двумя способами:
Добавление этой конфигурации в pom.xml
Перейти на используемый JDK 1.7 вместо 1.6
источник
Чтобы разрешить java.lang.OutOfMemoryError: пространство кучи Java в Maven, попробуйте настроить конфигурацию ниже в pom
источник
Не только куча памяти. также увеличьте размер perm, чтобы разрешить это исключение в maven, используйте эти переменные в переменной среды.
Пример :
источник