Como controlar argumentos VM para maven-cais-plugin?
-
18-09-2019 - |
Pergunta
Como definir argumentos VM para Jetty prazo do Maven-cais-plugin?
Por exemplo, eu preciso passar argumentos -Xmx
para Jetty corrida pelo comando mvn jetty:run
.
Solução
Os MAVEN_OPTS variáveis ??ambiente é a resposta. O conteúdo série de MAVEN_OPTS é passado para JVM (java.exe).
- Linux: no tipo concha
export MAVEN_OPTS=....
- Windows: com casca (cmd.exe) Tipo
set MAVEN_OPTS=...
Por exemplo:. No Windows set MAVEN_OPTS="-Xmx1024m"
define o tamanho da pilha do processo Maven para 1024mb
Atualizar (2013/01/04):. Passe-lo diretamente para Jetty
Matthew Farwell (por favor upvote sua resposta a dar-lhe crédito) vem com a solução de utilizar um processo JVM bifurcada para executar Jetty que é um novo recurso do Jetty plug-in . Esta é uma solução melhor como os antigos executado dentro mesmo processo JVM como Maven (assim ações de memória).
Outras dicas
Com as versões mais recentes do-cais-plugin Maven, você pode usar mvn:run-forked
. Os jvmArgs opção permite que você defina -Xmx etc.
Para obter mais informações, consulte: cais: run-bifurcada: executando um webapp desmontado em uma JVM separado.
Eu acho que o problema original era Começando Jetty na JVM separado.
Parece que sua estratégia atual está correta - ao executar cais através maven, pontão é um segmento dentro do processo maven. Assim pilha crescente de maven irá aumentar a pilha do cais.
Como você está definindo MAVEN_OPTS?
Um exemplo achei parecido com este: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run
Note que MAVEN_OPTS
é uma variável de ambiente aqui, e não passou para a JVM (que não saberia o que fazer com ele).
Para especificar argumentos vm via linha de comando (como originalmente solicitado), você pode fazer o seguinte:
mvn clean install -DargLine="-Xmx1524m"
O param <jvmArgs>
mencionados aqui: Maven cais plug-in
não funcionou para mim.
versão Maven: Apache Maven 3.0.3
Jetty Maven versão plugin: molhe-maven-plugin: 8.1.10.v20130312
Isso funcionou:
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
No Linux / Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
irá fazer o truque
O plug-in permite que você especifique jvmArgs como este:
<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>
você pode usar para passar argumentos -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>
Não há nenhuma maneira usando a linha de comando. Mas você poderia copiar o mvn.cmd
/ mvn.sh
para mvnhp.cmd
e altere a linha
%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%
Para
%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%