Cuando ejecuto la prueba de Maven, sucede java.lang.OutOfMemoryError. Lo busqué en Google y lo intenté export MAVEN_OPTS=-Xmx1024m
, pero no funcionó. Alguien sabe 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"
Pruebas fallidas: advertencia (junit.framework.TestSuite $ 1) testDefaultPigJob_1 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) testDefaultPigJob_2 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) Pruebas realizadas: 11, Fallos: 3, Errores: 0, Saltado: 0 10/11/01 13:37:18 INFOcutionengine.HExecutionEngine: Conexión a hadoop fi sistema de archivos en: archivo: /// [INFO] ----------------------------------------------- ------------------------- [INFO] FALLO DE CONSTRUCCIÓN [INFO] ----------------------------------------------- ------------------------- [INFO] Tiempo total: 30.063s [INFO] Terminado en: Lun Nov 01 13:37:18 PDT 2010 [INFO] Memoria final: 3M / 6M [INFO] ----------------------------------------------- ------------------------- [ERROR] Error al ejecutar el objetivo org.apache.maven.plugins: maven-surefire-plugin: 2. 5: prueba (prueba predeterminada) en el proyecto dw.pig: hay fallas de prueba. [ERROR] [ERROR] Consulte E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports fo r los resultados de las pruebas individuales. [ERROR] -> [Ayuda 1] org.apache.maven.lifecycle.LifecycleExecutionException: no se pudo ejecutar el objetivo o rg.apache.maven.plugins: maven-surefire-plugin: 2.5: prueba (prueba predeterminada) en el proyecto dw.pig: hay fallas de prueba. Consulte E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports para el en Resultados de la prueba individual. en org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 199) en org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 148) en org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 140) en org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct (LifecycleModuleBuilder.java:84) en org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje ct (LifecycleModuleBuilder.java:59) en org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu ild (LifecycleStarter.java:183) en org.apache.maven.lifecycle.internal.LifecycleStarter.execute (Lifecycl eStarter.java:161) en org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:314) en org.apache.maven.DefaultMaven.execute (DefaultMaven.java:151) en org.apache.maven.cli.MavenCli.execute (MavenCli.java:445) en org.apache.maven.cli.MavenCli.doMain (MavenCli.java:168) en org.apache.maven.cli.MavenCli.main (MavenCli.java:132) en sun.reflect.NativeMethodAccessorImpl.invoke0 (Método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 39) en sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces sorImpl.java:25) en java.lang.reflect.Method.invoke (Method.java:597) en org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher cher.java:290) en org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.jav a: 230) en org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (La uncher.java:409) en org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java: 352) Causado por: org.apache.maven.plugin.MojoFailureException: hay fallas de prueba . Consulte E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports para el en Resultados de la prueba individual. en org.apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi n.java:629) en org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (predeterminado BuildPluginManager.java:107) en org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor .java: 195) ... 19 más [ERROR] [ERROR] Vuelva a ejecutar Maven con el modificador -X para habilitar el registro de depuración completo. [ERROR] [ERROR] Para obtener más información sobre los errores y las posibles soluciones, consulte d los siguientes artículos: [ERROR] [Ayuda 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
java
maven
out-of-memory
zjffdu
fuente
fuente
Respuestas:
Establecer las
Xmx
opciones usandoMAVEN_OPTS
funciona, configura la JVM utilizada para iniciar Maven. Dicho esto, el complemento maven-surefire bifurca una nueva JVM de forma predeterminada, porMAVEN_OPTS
lo que no se pasa.Para configurar el tamaño de la JVM utilizada por el complemento maven-surefire, deberá:
forkMode
anever
(que no es una buena idea porque Maven no estará aislado de la prueba) ~ o ~argLine
parámetro (de la manera correcta):En el caso posterior, algo como esto:
Pero tengo que decir que tiendo a estar de acuerdo con Stephen aquí, es muy probable que haya algo mal con una de sus pruebas y no estoy seguro de que dar más memoria sea la solución correcta para "resolver" (¿ocultar?) Su problema.
Referencias
fuente
forkMode
ha quedado en desuso: maven.apache.org/surefire/maven-surefire-plugin/…forkMode
ha quedado en desuso, pero creo que solo debe ser reemplazado por unoforkCount
que tenga una funcionalidad similar. Una forma de usar MAVEN_OPTS es<argLine>${env.MAVEN_OPTS}</argLine>
que aparentemente no es recomendable, ya que puede variar de una computadora a otra ( stackoverflow.com/a/10463133/32453 ). También tenga en cuenta que si está usando jacoco se supone que debe configurar argLine de una manera diferente stackoverflow.com/questions/12269558/maven-jacoco-plugin-errorPara aquellos nuevos en Maven (como yo), aquí está toda la configuración que va en la sección de compilación de su pom. Salud.
fuente
Lo más probable es que el problema esté en una de las pruebas unitarias que le ha pedido a Maven que ejecute.
Como tal, jugar con el tamaño del montón es el enfoque incorrecto. En su lugar, debe mirar la prueba de la unidad que ha causado el OOME e intentar averiguar 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,
mvn ... test
vuelva a ejecutar con la-e
opción.fuente
Para solucionar temporalmente este problema, descubrí que lo siguiente es la forma más rápida:
fuente
He resuelto este problema de mi lado de 2 maneras:
Agregar esta configuración en pom.xml
Cambie a JDK 1.7 usado en lugar de 1.6
fuente
Para resolver java.lang.OutOfMemoryError: espacio de almacenamiento dinámico Java en Maven, intente configurar la configuración siguiente en pom
fuente
No solo memoria de montón. También aumente el tamaño de la permanente para resolver esa excepción en Maven. Utilice estas variables en la variable de entorno.
Ejemplo:
fuente