Comment définir les arguments VM pour Jetty exécuté à partir de maven-jetty-plugin?
Par exemple, je dois transmettre les arguments -Xmx
à Jetty à l'aide de la commande mvn jetty:run
.
La variable d'environnement MAVEN_OPTS est la réponse. Le contenu de la chaîne MAVEN_OPTS est transmis à la machine virtuelle Java (Java.exe).
export MAVEN_OPTS=....
set MAVEN_OPTS=...
Par exemple: sous Windows set MAVEN_OPTS="-Xmx1024m"
définit la taille de segment de mémoire du processus Maven sur 1024 Mo.
Mise à jour (01.04.2013): transmettez-le directement à Jetty.
Matthew Farwell (s'il vous plaît, votez sa réponse pour lui donner crédit) vient avec la solution consistant à utiliser un processus JVM à fourche pour exécuter Jetty, qui est une nouvelle fonctionnalité du plugin Jetty . C'est une meilleure solution, car le premier s'exécute dans le même processus JVM que Maven (partage donc de la mémoire).
Avec les versions plus récentes du plugin maven-jetty, vous pouvez utiliser mvn:run-forked
. L'option jvmArgs vous permettra de définir -Xmx etc.
Pour plus d'informations, voir: jetty: run-forked: Exécution d'une application Web non assemblée dans un fichier jvm séparé .
Je pense que le problème initial était Démarrer Jetty dans une JVM séparée .
Il semble que votre approche actuelle soit correcte: lors de l'exécution d'une jetée via Maven, la jetée est un fil conducteur du processus Maven. Augmenter le tas de Maven augmentera le tas de la jetée.
Comment définissez-vous MAVEN_OPTS?
Un exemple que j'ai trouvé ressemble à ceci: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run
Notez que MAVEN_OPTS
est ici une variable d’environnement, et n’est pas transmise à la machine virtuelle Java (qui ne saurait pas quoi en faire).
Pour spécifier les arguments vm via la ligne de commande (comme demandé à l'origine), vous pouvez procéder comme suit:
mvn clean install -DargLine="-Xmx1524m"
Le paramètre <jvmArgs>
mentionné ici: Le plugin Maven Jetty Ne m'a pas aidé.
Version Maven: Apache Maven 3.0.3
Version du plugin Jetty Maven: jetty-maven-plugin: 8.1.10.v20130312
Cela a fonctionné:
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
Le plugin vous permet de spécifier jvmArgs comme ceci:
<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>
Sous Linux/Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
fera l'affaire
Que diriez-vous de: mvn -DMAVEN_OPTS=-Xmx1024m jetty:run
Il n'y a aucun moyen d'utiliser la ligne de commande. Mais vous pouvez copier le mvn.cmd
/mvn.sh
dans mvnhp.cmd
et changer la ligne
%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%
vous pouvez utiliser pour passer l'argument -Xmx tel que;
<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>