Ответ 1
Вы можете установить свойства таким образом
<configuration>
<systemProperties>
<JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</JAVA_OPTS>
</systemProperties>
</configuration>
Я хочу запустить встроенный экземпляр tomcat7 непосредственно из maven с помощью модуля tomcat7-maven. Это нормально работает, но у Tomcat, похоже, недостаточно памяти. Я подозреваю, что мне нужно будет установить
-XX:MaxPermSize=256m
но я не могу понять, как это сделать.
В документации говорится, что в разделе "Конфигурация" плагина следует использовать элемент "systemProperties". Однако параметры указаны как элементы XML и должны выглядеть следующим образом:
<configuration>
<systemProperties>
<XX:MaxPermSize>256m</XX:MaxPermSize>
</systemProperties>
</configuration>
Но это, конечно, невозможно, поскольку он разбивает XML (XX интерпретируется как пространство имен).
Конечно, я мог обойти эту проблему, установив переменную окружения
MAVEN_OPTS=-XX:MaxPermSize=256m
но я бы предпочел только увеличить его для встроенного Tomcat. Любые идеи, как это сделать?
Вы можете установить свойства таким образом
<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".