java.lang.OutOfMemoryError: espace de mémoire Java dans Maven

Lorsque je lance le test maven, java.lang.OutOfMemoryError se produit. Je l’ai google pour les solutions et j’ai essayé d’ export MAVEN_OPTS=-Xmx1024m , mais cela n’a pas fonctionné. Tout le monde connaît d’autres solutions pour ce problème, BTW j’utilise maven 3.0

Merci d’avance

Collez le message d’erreur ici lorsque vous exécutez “mvn test -e”

 Tests échoués:
   avertissement (junit.framework.TestSuite $ 1)
   testDefaultPigJob_1 (com.snda.dw.pig.impl.DefaultPigJobLocalTest)
   testDefaultPigJob_2 (com.snda.dw.pig.impl.DefaultPigJobLocalTest)

 Tests effectués: 11, échecs: 3, erreurs: 0, ignorés: 0

 10/11/01 13:37:18 INFO executionengine.HExecutionEngine: Se connecter au hadoop fi
 système de fichiers à: fichier: ///
 [INFO] ----------------------------------------------- -------------------------
 [INFO] BUILD FAILURE
 [INFO] ----------------------------------------------- -------------------------
 [INFO] Temps total: 30.063s
 [INFO] Terminé à: Mon nov. 01 13:37:18 PDT 2010
 [INFO] Mémoire finale: 3M / 6M
 [INFO] ----------------------------------------------- -------------------------
 [ERREUR] Echec de l'exécution du but org.apache.maven.plugins: maven-surefire-plugin: 2.
 5: test (test par défaut) sur le projet dw.pig: il y a des échecs de test.
 [ERREUR]
 [ERREUR] Veuillez vous référer à E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports pour
 r les résultats des tests individuels.
 [ERREUR] -> [Aide 1]
 org.apache.maven.lifecycle.LifecycleExecutionException: Échec de l'exécution de l'objective o
 rg.apache.maven.plugins: plugin maven-surefire: 2.5: test (test-default) sur le projet
  dw.pig: Il y a des échecs de test.

 Veuillez vous référer à E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports pour le in
 résultats de tests individuels.
         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)
         à org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
 ct (LifecycleModuleBuilder.java:84)
         à 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)
         à org.apache.maven.cli.MavenCli.main (MavenCli.java:132)
         at sun.reflect.NativeMethodAccessorImpl.invoke0 (méthode native)
         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)
         à org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.jav
 a: 230)
         at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (La
 uncher.java:409)
         à org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:
 352)
 Causé par: org.apache.maven.plugin.MojoFailureException: il y a des échecs de test
 .

 Veuillez vous référer à E: \ Code \ Java \ workspace \ dw.pig \ target \ surefire-reports pour le in
 résultats de tests individuels.
         at org.apache.maven.plugin.surefire.SurefirePlugin.execute (SurefirePlugi
 n.java:629)
         à org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (par défaut
 BuildPluginManager.java:107)
         at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor
 .java: 195)
         ... 19 de plus
 [ERREUR]
 [ERROR] Relancez Maven en utilisant le commutateur -X pour activer la journalisation complète du débogage.
 [ERREUR]
 [ERREUR] Pour plus d'informations sur les erreurs et les solutions possibles, veuillez
 d les articles suivants:
 [ERREUR] [Aide 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc

Lorsque je lance le test maven, java.lang.OutOfMemoryError se produit. Je l’ai google pour les solutions et j’ai essayé d’exporter MAVEN_OPTS = -Xmx1024m, mais cela n’a pas fonctionné.

Définir les options Xmx aide de MAVEN_OPTS ne fonctionne pas, il configure la JVM utilisée pour démarrer Maven. Cela étant dit, le plugin maven-surefire- forks forge une nouvelle JVM par défaut et vos MAVEN_OPTS sont donc pas passés.

Pour configurer le dimensionnement de la JVM utilisée par le plugin maven-surefire, vous devez soit:

  • changez le forkMode en never (ce qui n’est pas une bonne idée car Maven ne sera pas isolé du test) ~ ou ~
  • utilisez le paramètre argLine (dans le bon sens):

Dans le dernier cas, quelque chose comme ceci:

  -Xmx1024m  

Mais je dois dire que je suis plutôt d’accord avec Stephen ici, il y a très probablement quelque chose qui ne va pas dans l’un de vos tests et je ne suis pas sûr que donner plus de mémoire soit la bonne solution pour “résoudre” votre problème.

Les références

  • Maven 2 Surefire Plugin
  • Chargement et chargement de classes à Maven Surefire

Pour ceux qui découvrent Maven (comme moi), voici la configuration complète qui se trouve dans la section build de votre pom. À votre santé.

    org.apache.maven.plugins maven-surefire-plugin 2.19  -Xmx1024m     

Les chances sont que le problème réside dans l’un des tests unitaires que vous avez demandé à Maven d’exécuter.

En tant que tel, bidouiller avec la taille du tas est la mauvaise approche. Au lieu de cela, vous devriez regarder le test unitaire qui a provoqué le test OOME et essayer de déterminer s’il s’agit de la panne du test unitaire ou du code qu’il teste.

Commencez par regarder la trace de la stack. S’il n’y en a pas, lancez mvn ... test nouveau avec l’option -e .

J’ai résolu ce problème de deux manières:

  1. Ajout de cette configuration dans pom.xml

     -Xmx1024m 
  2. Passez à JDK 1.7 utilisé au lieu de 1.6

Pour contourner temporairement ce problème, j’ai trouvé que le moyen le plus rapide était le suivant:

 export JAVA_TOOL_OPTIONS="-Xmx1024m -Xms1024m" 

Pour résoudre java.lang.OutOfMemoryError: espace disque Java dans Maven, essayez de configurer la configuration ci-dessous dans pom

  org.apache.maven.plugins maven-surefire-plugin ${maven-surefire-plugin.version}  true true -XX:MaxPermSize=500M   

Définissez la variable d’environnement:

MAVEN_OPTS = “- Xmx1024m”

Pas seulement la mémoire tas. Augmentez également la taille de perm pour résoudre cette exception dans maven utilisez ces variables dans la variable d’environnement.

 variable name: MAVEN_OPTS variable value: -Xmx512m -XX:MaxPermSize=256m 

Exemple :

 export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=500m"