web-dev-qa-db-fra.com

Augmenter la taille du tas dans le plugin m2e Eclipse

Comment augmenter la taille de tas du plugin m2e Eclipse? Fondamentalement, j'essaie d'exécuter un test d'intégration automatisé à l'aide de Cargo et de Selenium sous STS (version Eclipse de SpringSource) avec le M2E préinstallé (le populaire plugin Maven pour Eclipse).

Chaque fois que je cours

mvn verify

Je reçois l'infâme Java.lang.OutOfMemoryError: espace de tas Java ... 63M/63M . J'ai donc d'abord fait des recherches. Augmentez la mémoire via MAVEN_OPTS, Eclipse.ini/STS.ini, Exécuter les configurations et même via les plug-ins Maven via pom.xml. Rien n'a changé. Même erreur et même quantité de mémoire 63M/63M.

Je sais que mon projet fonctionne. Le POM est correct. Pourquoi? Parce que quand je lance la même commande en utilisant un Maven autonome. Le test d'intégration avec Selenium et Cargo fonctionne. En fait, voici la dernière sortie (il y a 3 minutes):

[INFO] [beddedLocalContainer] Jetty 8.x Embedded is stopped
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 24 seconds
[INFO] Finished at: Wed Oct 26 14:08:16 CST 2011
[INFO] Final Memory: 70M/149M
[INFO] ------------------------------------------------------------------------

Je ne demande pas comment augmenter la mémoire dans la commande Maven autonome. Je demande spécifiquement comment augmenter la taille du tas pour m2e. 

Remarque: Par défaut, le plug-in m2e Eclipse n'a pas de raccourci vers l'objectif "vérifier". Vous devez en créer un nouveau via Exécuter la configuration (sans l’onglet Args, fyi).

15
krams

Lorsque vous utilisez le plug-in Maven 2, la définition des options Java dans la variable d'environnement Eclipse.ini ou MAVEN_OPTS n'aura aucun effet sur votre construction. Vous devez ajouter des arguments de ligne de commande via la boîte de dialogue "Modifier la configuration et lancer" dans Eclipse.

"Run As"> "Maven Build", cliquez sur l'onglet "JRE", entrez VM args, par exemple.

-Xms128M -Xmx512M

34
crasp

Pour faire suite à la réponse déjà acceptée, lorsque vous appelez "mvn" sur la ligne de commande, vous appelez en réalité le script d'encapsuleur mvn.bat (ou mvn.sh). C’est ce script qui utilise la variable env MAVEN_OPTS lors du lancement du maven jvm. 

m2e, d'autre part, veut plus de contrôle sur la façon dont le maven jvm est lancé, donc il le fait directement sans wrapper. C'est pourquoi vous ajoutez vos paramètres de mémoire directement aux arguments de votre configuration d'exécution/débogage m2e VM, plutôt que d'utiliser MAVEN_OPTS. 

Si vous voulez que m2e transmette ce que vous avez déjà dans MAVEN_OPTS au maven jvm, dans la boîte de dialogue "Modifier la configuration et lancer" dans Eclipse:

"Run As"> "Maven Build", cliquez sur l'onglet "JRE", entrez VM args, par exemple.

${env_var:MAVEN_OPTS}
10
vacao

Vous pouvez ajouter dans votre pom.xml vos paramètres de mémoire:

<plugin>
 <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    ...
    <fork>true</fork>
    <meminitial>128m</meminitial>
    <maxmem>512m</maxmem>
    ...
  </configuration>
</plugin>

La description de tous les paramètres de maven-compiler-plugin est ici: link

1
davidpolo

Avez-vous essayé de définir la variable d'environnement MAVEN_OPTS pour votre configuration d'exécution?

MAVEN_OPTS="-Xmx768M -XX:MaxPermSize=128m" 

Vous devrez peut-être modifier vos variables d'environnement système si le réglage dans la configuration d'exécution ne vous aide pas. Voir ici ou ici

0
Pete

J'ai fait face à un problème similaire. Créez un fichier nommé mavenrc_pre.bat sous Windows ou .mavenrc sous Linux dans votre dossier de départ et définissez votre maven_opts comme vous le souhaitez. Il fonctionne avec m2e fourni avec Eclipse Indigo.

0
GokcenG