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

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

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

Ответ 1

Переменная среды 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): передайте его непосредственно в Jetty.

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

mvn clean install -DargLine="-Xmx1524m" 

Ответ 5

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

Версия 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 &

Ответ 6

В Linux/Unix

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

выполнит трюк

Ответ 7

Плагин позволяет вам указать 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>

Ответ 8

Как насчет: mvn -DMAVEN_OPTS=-Xmx1024m jetty:run

Ответ 9

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

Ответ 10

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