maven 테스트를 실행하면 java.lang.OutOfMemoryError가 발생합니다. 솔루션을 찾기 위해 Google을 검색하고 시도했지만 export MAVEN_OPTS=-Xmx1024m
작동하지 않았습니다. 누구나이 문제에 대한 다른 솔루션을 알고 있습니다 .BTW는 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 정보 executionengine.HExecutionEngine : hadoop fi에 연결 파일 시스템 : file : /// [정보] ----------------------------------------------- ------------------------- [정보] 빌드 실패 [정보] ----------------------------------------------- ------------------------- [정보] 총 시간 : 30.063 초 [정보] 종료일 : Mon Nov 01 13:37:18 PDT 2010 [정보] 최종 메모리 : 3M / 6M [정보] ----------------------------------------------- ------------------------- [오류] 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를 참조하십시오. r 개별 테스트 결과. [오류]-> [도움말 1] org.apache.maven.lifecycle.LifecycleExecutionException : 목표 o를 실행하지 못했습니다. 프로젝트의 rg.apache.maven.plugins : maven-surefire-plugin : 2.5 : test (기본 테스트) dw.pig : 테스트 실패가 있습니다. 에 대한 E : \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports를 참조하십시오. 개별 테스트 결과. 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에서 ct (LifecycleModuleBuilder.java:84) org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje에서 ct (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) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java : 39) at 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 a : 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를 참조하십시오. 개별 테스트 결과. org.apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi n.java:629) org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (Default BuildPluginManager.java:107) org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java : 195) ... 19 더 [오류] [오류] 전체 디버그 로깅을 사용하려면 -X 스위치를 사용하여 Maven을 다시 실행하세요. [오류] [ERROR] 오류 및 가능한 해결 방법에 대한 자세한 내용은 d 다음 기사 : [오류] [도움말 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
답변
maven 테스트를 실행하면 java.lang.OutOfMemoryError가 발생합니다. 솔루션을 위해 Google을 검색하고 MAVEN_OPTS = -Xmx1024m을 내보내려고 시도했지만 작동하지 않았습니다.
do를 사용하여 Xmx
옵션을 설정하면 MAVEN_OPTS
Maven을 시작하는 데 사용되는 JVM이 구성됩니다. 즉, maven-surefire-plugin 은 기본적으로 새 JVM을 포크MAVEN_OPTS
하므로 전달되지 않습니다.
maven-surefire-plugin에서 사용하는 JVM의 크기를 구성하려면 다음 중 하나를 수행해야합니다.
나중의 경우 다음과 같습니다.
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
하지만 저는 여기서 Stephen과 동의하는 경향이 있다고 말해야합니다. 테스트 중 하나에 문제가있을 가능성이 매우 높으며 더 많은 메모리를 제공하는 것이 문제를 “해결”(숨기기?)하는 올바른 해결책이라고 확신하지 못합니다.
참고 문헌
답변
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"
답변
나는이 문제를 두 가지 방법으로 해결했습니다.
-
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>
답변
힙 메모리 뿐만이 아닙니다. 또한 maven에서 해당 예외를 해결하기 위해 perm 크기를 늘리십시오. 환경 변수에서 이러한 변수를 사용하십시오.
variable name: MAVEN_OPTS
variable value: -Xmx512m -XX:MaxPermSize=256m
예 :
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=500m"