Je veux démarrer une instance Tomcat7 intégrée directement à partir de maven en utilisant le plugin Tomcat7-maven. Cela fonctionne bien, mais le Tomcat démarré ne semble pas avoir suffisamment de mémoire. Je soupçonne que je devrais régler
-XX:MaxPermSize=256m
mais je ne sais pas comment le faire.
La documentation indique que l'on devrait utiliser l'élément "systemProperties" dans la section "configuration" du plugin. Cependant, les options sont spécifiées en tant qu'éléments XML et devraient ressembler à ceci:
<configuration>
<systemProperties>
<XX:MaxPermSize>256m</XX:MaxPermSize>
</systemProperties>
</configuration>
Mais ce n'est bien sûr pas possible car il casse le XML (XX est interprété comme un espace de noms).
Bien sûr, je pouvais contourner ce problème en définissant la variable d'environnement
MAVEN_OPTS=-XX:MaxPermSize=256m
mais je préférerais l'augmenter uniquement pour le Tomcat intégré. Des idées pour faire ça?
Vous pouvez définir les propriétés de cette manière
<configuration>
<systemProperties>
<Java_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</Java_OPTS>
</systemProperties>
</configuration>
Comme la plupart l'ont dit dans les commentaires ci-dessus, les propriétés de pom.xml n'ont aucun effet. Ce qui a fonctionné pour moi, c'était de définir mon MAVEN_OPTS
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
Ou sous Windows dans un terminal cmd:
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m
Pour les utilisateurs de mac/linux, ajoutez simplement une instruction d'exportation à votre ~/.profile (ou nom de fichier similaire). Par exemple:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
Et redémarrez votre Shell.
Celui-ci a fonctionné pour moi:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>...</version>
<configuration>
<container>...</container>
<configuration>
<type>standalone</type>
<home>...</home>
<properties>
<cargo.jvmargs>-Xmx4096m</cargo.jvmargs>
</properties>
</configuration>
<deployables>...</deployables>
</configuration>
</plugin>
Il démarre mon Tomcat8 dans une nouvelle machine virtuelle Java avec l'argument "-Xmx4096m".