Как установить аргументы виртуальной машины для запуска Jetty из плагина maven-jetty?
Например, мне нужно передать -Xmx
аргументы в Jetty, запущенную командой mvn jetty:run
.
Как установить аргументы виртуальной машины для запуска Jetty из плагина maven-jetty?
Например, мне нужно передать -Xmx
аргументы в Jetty, запущенную командой mvn jetty:run
.
Переменная среды MAVEN_OPTS является ответом. Строковое содержимое MAVEN_OPTS передается в JVM (java.exe).
export MAVEN_OPTS=....
set MAVEN_OPTS=...
Например: в Windows set MAVEN_OPTS="-Xmx1024m"
устанавливает размер кучи процесса Maven равным 1024 МБ.
Обновление (01.04.2013): передать его прямо в Jetty.
Мэтью Фарвелл (проголосуйте за его ответ, чтобы отдать ему должное) предлагает решение использования разветвленного процесса JVM для запуска Jetty, которое является < a href = "http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-run-forked-goal" rel = "noreferrer"> новая функция плагина Jetty < / а>. Это лучшее решение, поскольку первое работает внутри того же процесса JVM, что и Maven (таким образом, разделяет память).
В более поздних версиях maven-jetty-plugin вы можете использовать mvn:run-forked
. Параметр jvmArgs позволит вам установить -Xmx и т. Д.
Для получения дополнительной информации см .: jetty: run-forassemble webapp в отдельном jvm.
Я думаю, что исходная проблема заключалась в запуске Jetty в отдельной JVM.
Похоже, ваш текущий подход правильный - при запуске причала через maven, пристань - это поток внутри процесса maven. Таким образом, увеличение кучи maven увеличит кучу причала.
Как вы устанавливаете MAVEN_OPTS?
Я нашел один пример, который выглядит так: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run
Обратите внимание, что MAVEN_OPTS
- это переменная среды здесь, а не передается JVM (кто не знает, что с ней делать).
Чтобы указать аргументы vm через командную строку (как изначально было предложено), вы можете сделать следующее:
mvn clean install -DargLine="-Xmx1524m"
Указанный здесь параметр <jvmArgs>
: не работает для меня.
Версия Maven: Apache Maven 3.0.3
Версия плагина Jetty Maven: jetty-maven-plugin: 8.1.10.v20130312
Это сработало:
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
В Linux / Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
сделает трюк
Плагин позволяет указать jvmArgs следующим образом:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<jvmArgs>-Xmx1024</jvmArgs>
<scanIntervalSeconds>10</scanIntervalSeconds>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<webAppConfig>
<jettyEnvXml>jetty-env.xml</jettyEnvXml>
</webAppConfig>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run-exploded</goal>
</goals>
</execution>
</executions>
</plugin>
jetty:run-forked
цель. См. Ответ Мэтью Фарвелла выше: stackoverflow.com/a/13388081/19501.
- person amit; 18.10.2013
jetty:run-forked
, когда набираемая команда mvn clean install
?
- person Stephane; 18.12.2015
вы можете использовать для передачи аргумента -Xmx, например;
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version></version>
<configuration>
<jvmArgs>-Xmx -Xms -XX:PermSize= -XX:MaxPermSize= -XX:+HeapDumpOnOutOfMemoryError</jvmArgs>
<scanIntervalSeconds>1</scanIntervalSeconds>
<stopKey>stop-jetty</stopKey>
<stopPort>9999</stopPort>
<systemProperties>
<systemProperty>
<name>jetty.port</name>
<value>9090</value>
</systemProperty>
<systemProperty>
<name>spring.profiles.active</name>
<value></value>
</systemProperty>
</systemProperties>
<webApp>
<contextPath>/</contextPath>
</webApp>
</configuration>
</plugin>
Нет возможности использовать командную строку. Но вы можете скопировать mvn.cmd
/ mvn.sh
в mvnhp.cmd
и изменить строку
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
To
%MAVEN_JAVA_EXE% -Xmx1024m %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%