¿Cómo controlar argumentos de VM para maven-embarcadero-plugin?
-
18-09-2019 - |
Pregunta
Cómo definir los argumentos de VM para ejecutar embarcadero del experto-embarcadero-plugin?
Por ejemplo, necesito pasar argumentos a -Xmx
embarcadero dirigidos por el comando mvn jetty:run
.
Solución
Los MAVEN_OPTS variable de entorno es la respuesta. El contenido de la cadena de MAVEN_OPTS se pasa a JVM (java.exe).
- Linux: en el tipo shell
export MAVEN_OPTS=....
- Windows: en shell (cmd.exe) tipo
set MAVEN_OPTS=...
Por ejemplo:. En Windows set MAVEN_OPTS="-Xmx1024m"
establece el tamaño del montón del proceso de Maven a 1024mb
Actualizar (04/01/2013):. Pase directamente al embarcadero
Mateo Farwell (por favor Upvote su respuesta que darle crédito) viene con la solución de utilizar un proceso de JVM en forma de horquilla para funcionar embarcadero el cual es una nueva característica de la embarcadero plugin. Esta es una mejor solución ya que el primero se ejecuta dentro de un mismo proceso JVM como Maven (por lo tanto las acciones de memoria).
Otros consejos
Con las versiones más recientes del experto-embarcadero-plugin, puede utilizar mvn:run-forked
. Los jvmArgs opción le permitirá configurar -Xmx etc.
Para obtener más información, consulte: amarre: gestión de horquilla: Ejecución de una aplicación web sin montar en una JVM separado.
Creo que el tema original fue A partir del embarcadero en la JVM por separado .
Parece que el enfoque actual es correcta - cuando se ejecuta a través embarcadero experto, amarre es un hilo dentro del proceso de experto. Así montón de aumentar experto aumentará el montón del embarcadero.
¿Cómo se configura MAVEN_OPTS?
Un ejemplo que encontré es así: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run
Tenga en cuenta que MAVEN_OPTS
es una variable de entorno aquí, y no pasó a la JVM (que no sabría qué hacer con él).
Para especificar argumentos de VM a través de la línea de comandos (como publicada originalmente) se puede hacer lo siguiente:
mvn clean install -DargLine="-Xmx1524m"
El parámetro <jvmArgs>
menciona aquí: Maven embarcadero plug-in
no funcionó para mí.
versión Maven: Apache Maven 3.0.3
embarcadero Maven versión plugin: embarcadero-maven-plugin: 8.1.10.v20130312
Esto funcionó:
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
En Linux / Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
hará el truco
El plug-in le permite especificar jvmArgs como esta:
<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>
se puede utilizar para pasar argumento -Xmx similares;
<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>
No hay manera de utilizar la línea de comandos. Pero se podría copiar el 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%