java - plugin - maven jetty server
¿Cómo controlar los argumentos de VM para maven-jetty-plugin? (10)
¿Cómo establecer argumentos de VM para Jetty desde maven-jetty-plugin?
Por ejemplo, necesito pasar los argumentos -Xmx
a Jetty ejecutados por el mvn jetty:run
.
¿Qué tal: mvn -DMAVEN_OPTS=-Xmx1024m jetty:run
Con las versiones más recientes de maven-jetty-plugin, puedes usar mvn:run-forked
. La opción jvmArgs te permitirá configurar -Xmx etc.
Para obtener más información, consulte: jetty: run-forked: Ejecución de una aplicación web desensamblada en un jvm separado .
Creo que el problema original fue Starting Jetty en JVM por separado .
El <jvmArgs>
mencionado aquí: el complemento de Maven <jvmArgs>
no funcionó para mí.
Versión de Maven: Apache Maven 3.0.3
Versión del plugin de Jetty Maven: jetty-maven-plugin: 8.1.10.v20130312
Esto funcionó:
MAVEN_OPTS=''-Xmx4096m -Xms4096m''
export MAVEN_OPTS
mvn jetty:run &
El plugin te permite especificar jvmArgs así:
<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>
En Linux / Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
hará el truco
No hay manera de usar la línea de comandos. Pero puedes copiar mvn.cmd
/ mvn.sh
a mvnhp.cmd
y cambiar la línea
%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%
A
%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%
Para especificar argumentos vm a través de la línea de comando (como se solicitó originalmente), puede hacer lo siguiente:
mvn clean install -DargLine="-Xmx1524m"
Parece que su enfoque actual es correcto: cuando se ejecuta Jetty a través de Maven, Jetty es un hilo dentro del proceso de Maven. Así que aumentar el montón de Maven aumentará el montón de embarcadero.
¿Cómo estás configurando MAVEN_OPTS?
Un ejemplo que encontré se ve así: MAVEN_OPTS=''-Xmx256m -Xms10m'' mvn clean jetty:run
Tenga en cuenta que MAVEN_OPTS
es una variable de entorno aquí, y no se pasa a la JVM (quien no sabría qué hacer con ella).
puedes usar para pasar el argumento -Xmx como;
<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>
La variable de entorno MAVEN_OPTS es la respuesta. El contenido de la cadena de MAVEN_OPTS se pasa a JVM (java.exe).
- Linux: en tipo de shell
export MAVEN_OPTS=....
- Windows: en el tipo de shell (cmd.exe)
set MAVEN_OPTS=...
Por ejemplo: en el set MAVEN_OPTS="-Xmx1024m"
Windows set MAVEN_OPTS="-Xmx1024m"
establece el tamaño del montón del proceso de Maven a 1024 mb.
Actualización (01.04.2013): Pásala directamente a Jetty.
Matthew Farwell (por favor, vote por su respuesta para darle crédito) viene con la solución de usar un proceso JVM bifurcado para ejecutar Jetty, que es una nueva característica del complemento Jetty . Esta es una mejor solución ya que la primera se ejecuta dentro del mismo proceso JVM que Maven (por lo tanto, comparte memoria).