Question

Comment définir des arguments VM pour Jetty exécuter à partir maven-jetée-plugin?

Par exemple, je dois passer des arguments de -Xmx à la jetée gérés par la commande mvn jetty:run.

Était-ce utile?

La solution

Les enviroment MAVEN_OPTS variables est la réponse. Le contenu de la chaîne de MAVEN_OPTS est transmis à JVM (java.exe).

  • Linux: dans le type shell export MAVEN_OPTS=....
  • Windows: dans la coquille (cmd.exe) type set MAVEN_OPTS=...

Par exemple:. Windows set MAVEN_OPTS="-Xmx1024m" définit la taille du tas du processus Maven à 1024MB

Mise à jour (01.04.2013):. Passez directement à la jetée

Matthew Farwell (s'il vous plaît Upvote sa réponse pour lui donner du crédit) est livré avec la solution d'utiliser un processus de machine virtuelle Java en forme de fourche pour exécuter la jetée qui est une nouvelle fonctionnalité du plug-in jetée . Ceci est une meilleure solution que les anciens à l'intérieur même processus fonctionne JVM comme Maven (actions ainsi la mémoire).

Autres conseils

Avec les versions les plus récentes de la maven-jetée-plugin, vous pouvez utiliser mvn:run-forked. L'option jvmArgs vous permettra de définir -Xmx etc.

Pour plus d'informations, consultez: jetée: gestion fourchue: Exécution d'une webapp non monté dans une machine virtuelle séparée .

Je pense que la question originale a été À partir Jetty JVM séparée.

Il semble que votre approche actuelle est correcte - lorsque la jetée qui traverse maven, jetée est un fil à l'intérieur du processus de Maven. Donc, le tas de Maven va augmenter de plus en plus le tas de jetée.

Comment définissez-vous MAVEN_OPTS?

Un exemple que je trouve ressemble à ceci: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run

Notez que MAVEN_OPTS est une variable d'environnement ici, et non transmis à la machine virtuelle Java (qui ne connaîtraient pas quoi faire avec elle).

Pour spécifier des arguments de vm via la ligne de commande (comme initialement demandé), vous pouvez faire ce qui suit:

mvn clean install -DargLine="-Xmx1524m" 

Le param <jvmArgs> mentionné ici: plugin Maven Jetty ne fonctionne pas pour moi.

version Maven: Apache Maven 3.0.3

version du plugin Maven Jetty: ponton-maven-plugin: 8.1.10.v20130312

Cela a fonctionné:

MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &

Sous Linux / Unix

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

fera l'affaire

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>

vous pouvez utiliser pour passer l'argument -Xmx comme;

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

Il n'y a aucun moyen en utilisant la ligne de commande. Mais vous pouvez copier le mvn.cmd / mvn.sh à 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%

Pour

%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%
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top