Увеличить память плагина tomcat7 maven?
Я хочу запустить встроенный экземпляр tomcat7 непосредственно из maven с помощью плагина tomcat7-maven-plugin. Это работает нормально, но у запущенного Tomcat недостаточно памяти. Я подозреваю, что мне нужно будет установить
-XX:MaxPermSize=256m
но я не могу понять, как это сделать.
В документации сказано, что в разделе "конфигурация" плагина следует использовать элемент "systemProperties". Однако параметры указываются как элементы XML и должны выглядеть следующим образом:
<configuration>
<systemProperties>
<XX:MaxPermSize>256m</XX:MaxPermSize>
</systemProperties>
</configuration>
Но это, конечно, невозможно, поскольку это нарушает XML (XX интерпретируется как пространство имен).
Конечно, я мог бы обойти эту проблему, установив переменную среды
MAVEN_OPTS=-XX:MaxPermSize=256m
но я бы предпочел только увеличить его для встроенного Tomcat. Есть идеи, как это сделать?
3 ответа
Вы можете установить свойства таким образом
<configuration>
<systemProperties>
<JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</JAVA_OPTS>
</systemProperties>
</configuration>
Как сказано в комментариях выше, свойства в pom.xml не имеют никакого эффекта. То, что работало для меня, устанавливало мой MAVEN_OPTS
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
Или на Windows в терминале cmd:
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m
Для пользователей Mac/ Linux просто добавьте оператор экспорта в ваш ~/.profile (или аналогичное имя файла). Например:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
И перезапустите свою оболочку.
Этот работал для меня:
<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>
Он запускает мой tomcat8 в новой JVM с аргументом "-Xmx4096m".