web-dev-qa-db-fra.com

Comment contrôler VM arguments pour maven-jetty-plugin?

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.

49
Michal Bernhard

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).

  • Linux: dans le type de shell export MAVEN_OPTS=....
  • Windows: dans Shell (cmd.exe), tapez 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).

53
Michal Bernhard

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 .

42
Matthew Farwell

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).

12
danben

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"
5
Chris Ritchie

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 &
3
Binita Bharati

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>
2
doredson

Sous Linux/Unix 

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

fera l'affaire

2

Que diriez-vous de: mvn -DMAVEN_OPTS=-Xmx1024m jetty:run

1
Timothy

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%
0
Peter Rader

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>
0
user2663609