java.lang.OutOfMemoryError: espacio de pila de Java en Maven
out-of-memory (8)
Cuando ejecuto la prueba maven, ocurre java.lang.OutOfMemoryError. Lo busqué en busca de soluciones y he intentado export MAVEN_OPTS=-Xmx1024m
, pero no funcionó. Alguien conoce otras soluciones para este problema, por cierto, estoy usando maven 3.0
Gracias por adelantado
Pegue el mensaje de error aquí cuando ejecute "mvn test -e"
Failed tests: warning(junit.framework.TestSuite$1) 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:/Code/Java/workspace/dw.pig/target/surefire-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:/Code/Java/workspace/dw.pig/target/surefire-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:/Code/Java/workspace/dw.pig/target/surefire-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
Cuando ejecuto la prueba maven, ocurre java.lang.OutOfMemoryError. Lo busqué en busca de soluciones y he intentado exportar MAVEN_OPTS = -Xmx1024m, pero no funcionó.
Establecer las opciones de Xmx
utilizando MAVEN_OPTS
funciona, configura la JVM utilizada para iniciar Maven. Una vez dicho esto, el complemento maven-surefire MAVEN_OPTS
una nueva JVM por defecto, y tus MAVEN_OPTS
no se pasan.
Para configurar el tamaño de la JVM utilizada por maven-surefire-plugin, tendría que:
- cambie el forks a
never
(que no es una buena idea porque Maven no estará aislado de la prueba) ~ o ~ - use el parámetro
argLine
(la forma correcta):
En el caso posterior, algo como esto:
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
Pero debo decir que tiendo a estar de acuerdo con Stephen aquí, es muy probable que haya algún problema con uno de sus exámenes y no estoy seguro de que dar más memoria sea la solución correcta para "resolver" (¿ocultar?) Su problema.
Referencias
Establecer la variable de entorno:
MAVEN_OPTS = "- Xmx1024m"
He resuelto este problema de mi lado de 2 maneras:
Agregar esta configuración en pom.xml
<configuration><argLine>-Xmx1024m</argLine></configuration>
Cambiar a JDK 1.7 utilizado en lugar de 1.6
Lo más probable es que el problema esté en una de las pruebas unitarias que le has pedido a Maven que ejecute.
Como tal, juguetear con el tamaño del montón es el enfoque equivocado. En su lugar, debe observar la prueba unitaria que ha causado el OOME y tratar de determinar si es culpa de la prueba de la unidad o del código que está probando.
Comience mirando el rastro de la pila. Si no hay uno, ejecuta mvn ... test
nuevo con la opción -e
.
No solo memoria de pila. también aumenta el tamaño de la ondulación permanente para resolver esa excepción en el uso de estas variables en la variable de entorno.
variable name: MAVEN_OPTS
variable value: -Xmx512m -XX:MaxPermSize=256m
Ejemplo:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=500m"
Para los nuevos en Maven (como yo), aquí está toda la configuración que va en la sección de compilación de tu pom. Aclamaciones.
<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>
Para resolver java.lang.OutOfMemoryError: espacio de pila Java en Maven, intente configurar a continuación la configuración en 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>
Para solucionar temporalmente este problema, encontré la siguiente forma más rápida:
export JAVA_TOOL_OPTIONS="-Xmx1024m -Xms1024m"