Как управлять аргументами VM для maven-jetty-plugin? - PullRequest
49 голосов
/ 05 января 2010

Как установить аргументы VM для запуска Jetty из maven-jetty-plugin?

Например, мне нужно передать -Xmx аргументы Jetty, запущенному командой mvn jetty:run.

Ответы [ 9 ]

55 голосов
/ 05 января 2010

Ответом является переменная окружения MAVEN_OPTS . Содержимое строки MAVEN_OPTS передается в JVM (java.exe).

  • Linux: в типе оболочки export MAVEN_OPTS=....
  • Windows: в оболочке (cmd.exe) типа set MAVEN_OPTS=...

Например: в Windows set MAVEN_OPTS="-Xmx1024m" устанавливает размер кучи процесса Maven равным 1024 МБ.

Обновление (01.04.2013): передать его непосредственно на причал.

Мэтью Фарвелл (пожалуйста, подтвердите его ответ , чтобы отдать ему должное) предлагает решение использовать раздвоенный процесс JVM для запуска Jetty, который является новой функцией плагина Jetty . Это лучшее решение, поскольку первое работает внутри того же процесса JVM, что и Maven (таким образом, совместно использует память).

43 голосов
/ 15 ноября 2012

С более свежими версиями maven-jetty-plugin вы можете использовать mvn:run-forked. Опция jvmArgs позволит вам установить -Xmx и т. Д.

Для получения дополнительной информации см .: jetty: run-разветвленный: запуск разобранного веб-приложения в отдельном jvm .

Я думаю, что исходная проблема была Запуск Jetty в отдельной JVM .

13 голосов
/ 05 января 2010

Кажется, что ваш нынешний подход верен - при прохождении пристани через maven, пристани - это поток внутри процесса maven. Таким образом, увеличение кучи Maven увеличит кучу причала.

Как вы настраиваете MAVEN_OPTS?

Один пример, который я нашел, выглядит так: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run

Обратите внимание, что MAVEN_OPTS здесь является переменной среды и не передается в JVM (кто не знает, что с ней делать).

6 голосов
/ 25 мая 2015

Чтобы указать аргументы vm через командную строку (как первоначально просили), вы можете сделать следующее:

mvn clean install -DargLine="-Xmx1524m"
3 голосов
/ 05 июня 2013

Параметр <jvmArgs>, упомянутый здесь: Плагин Maven Jetty не работает для меня

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 &
2 голосов
/ 02 декабря 2012

Плагин позволяет указывать 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>
2 голосов
/ 23 апреля 2012

в Linux / Unix

export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run

сделает свое дело

0 голосов
/ 21 августа 2016

Нет способа использовать командную строку. Но вы можете скопировать 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%

К

%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%
0 голосов
/ 14 марта 2014

вы можете использовать для передачи аргумента -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>
...