Lorsque j'exécute le test maven, Java.lang.OutOfMemoryError se produit. Je recherche des solutions sur Google et j'ai essayé de export MAVEN_OPTS=-Xmx1024m
, Mais cela n'a pas fonctionné. Quiconque connaît d’autres solutions à ce problème, d’ailleurs, j’utilise maven 3.0
Merci d'avance
Collez le message d'erreur ici lorsque vous exécutez "mvn test -e"
Échec des tests: Avertissement (junit.framework.TestSuite $ 1) TestDefaultPigJob_1 (com.snda.dw.pig.impl.DefaultPigJobLocalTest) TestDefaultPigJob_2 (com. snda.dw.pig.impl.DefaultPigJobLocalTest) Tests exécutés: 11, Échecs: 3, Erreurs: 0, Ignoré: 0 10/11/01 13:37:18 INFO executionengine.HExecutionEngine: Connexion à un système hadoop fi Le système à: file: /// [INFO] ------------- -------------------------------------------------- --------- [INFO] ÉCHEC DE LA CONSTRUCTION [INFO] ----------------------- ------------------------------------------------- [INFO] Temps total: 30.063s [INFO] Terminé à: lun. Nov. 13 13:37:18 HAP 2010 [INFO] Mémoire finale: 3M/6M [INFO] --------------------------------------------- --------------------------- [ERROR] Échec d'exécution du but. Org.Apache.maven.plugins: maven-surefire -plugin: 2. 5: test (test par défaut) sur projet dw.pig: il y a des échecs de test. [ERROR] [.___ _.] [ERREUR] Veuillez vous référer à E:\Code\Java\espace de travail\dw.pig\target\surefire-reports pour R les résultats du test individuel. [ERREUR] -> [ Aide 1] Org.Apache.maven.lifecycle.LifecycleExecutionException: Impossible d'exécuter le but o Rg.Apache.maven.plugins: maven-surefire-plugin: 2.5: test (default-test) sur le projet dw.pig: il y a des échecs de test. Veuillez vous reporter à E:\Code\Java\espace de travail\dw.pig\target\surefire-reports pour le résultats de tests individuels. à org.Apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor . Java: 199) à org.Apache. maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor . Java: 148) à l'org.Apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor . Java: 140) Sur org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje Ct (LifecycleModuleBuilder.Java:84) Sur org.Apache.maven.lifecycle.internal. Vie cleModuleBuilder.buildProje ct (LifecycleModuleBuilder.Java:59) à l'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) à l'org.Apache.maven.cli.MavenCli.main (MavenCli.Java:132) à Sun.reflect.NativeMethodAccessorImpl.invoke0 (Méthode native) à Sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. Java: 39) à Sun.reflect.DélégantMéthode. 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.mainWithExit Code. (La Uncher.Java:409) À org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.Java: 352) Caused par: org.Apache.maven.plugin.MojoFailureException: il y a des échecs de test . Veuillez vous référer à E:\Code\Java\espace de travail\dw.pig\target\Les rapports de surfire pour les résultats de test individuels en . à l'org.Apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi n.Java:629)57.ht.____ .] à org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo (Défaut BuildPluginManager.Java:107) à org.Apache.maven.lifecycle.internal.MojoExecutor.exe cute (MojoExecutor . Java: 195) ... 19 plus [ERREUR] [ERREUR] Relancez Maven à l'aide du commutateur -X pour l'activer. journalisation complète du débogage. [ERREUR] [ERREUR] Pour plus d'informations sur les erreurs et les solutions possibles, veuillez consulter les articles suivants: [ERREUR] [Aide 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureExc
Lorsque j'exécute le test maven, Java.lang.OutOfMemoryError se produit. J'y ai cherché des solutions et essayé d'exporter MAVEN_OPTS = -Xmx1024m, mais cela n'a pas fonctionné.
Paramétrer les options Xmx
avec MAVEN_OPTS
fonctionne, il configure la machine virtuelle utilisée pour démarrer Maven. Cela étant dit, le maven-surefire-plugin forks une nouvelle JVM par défaut, et votre MAVEN_OPTS
_ ne sont donc pas passés.
Pour configurer le dimensionnement de la machine virtuelle utilisée par le plugin maven-surefire, vous devez soit:
forkMode
par never
(ce qui n'est pas une très bonne idée car Maven ne sera pas isolé du test) ~ ou ~argLine
(dans le bon sens):Dans le dernier cas, quelque chose comme ceci:
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
Mais Je dois dire que j'ai tendance à être d'accord avec Stephen, il y a probablement un problème avec l'un de vos tests et je ne suis pas sûr que Donner plus de mémoire est la bonne solution pour "résoudre" (cacher) votre problème.
Pour ceux qui découvrent Maven (comme moi), voici toute la config qui se trouve dans la section construction de votre pom. À votre santé.
<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>
Il est probable que le problème réside dans l'un des tests unitaires que vous avez demandé à Maven d'exécuter.
En tant que tel, manipuler la taille du tas est une mauvaise approche. Au lieu de cela, vous devriez examiner le test unitaire qui a provoqué l’OOME et essayer de déterminer s’il s’agit du fait du test unitaire ou du code qu’il teste.
Commencez par regarder la trace de la pile. S'il n'y en a pas, lancez mvn ... test
encore avec le -e
option.
Pour contourner temporairement ce problème, j’ai trouvé le moyen le plus rapide:
export Java_TOOL_OPTIONS="-Xmx1024m -Xms1024m"
J'ai résolu ce problème de mon côté de 2 manières:
Ajout de cette configuration dans pom.xml
<configuration><argLine>-Xmx1024m</argLine></configuration>
Passer à JDK 1.7 utilisé au lieu de 1.6
Afin de résoudre Java.lang.OutOfMemoryError: Java dans Maven, essayez de configurer la configuration ci-dessous dans 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>