web-dev-qa-db-fra.com

java.lang.OutOfMemoryError: Java dans Maven

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
116
zjffdu

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:

  • remplacez le forkMode par never (ce qui n'est pas une très 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:

<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.

Références

154
Pascal Thivent

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>
59
user738048

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.

12
Stephen C

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

export Java_TOOL_OPTIONS="-Xmx1024m -Xms1024m"
7
Max Hohenegger

J'ai résolu ce problème de mon côté de 2 manières:

  1. Ajout de cette configuration dans pom.xml

    <configuration><argLine>-Xmx1024m</argLine></configuration>
    
  2. Passer à JDK 1.7 utilisé au lieu de 1.6

6
Minh Dang

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>
1
Narayan Yerrabachu