wake-up-neo.net

Wie man kontrolliert VM Argumente für Maven-Jetty-Plugin?

Wie man VM Argumente für Jetty setzt, das vom Maven-Jetty-Plugin ausgeführt wird?

Zum Beispiel muss ich -Xmx-Argumente an Jetty übergeben, die vom mvn jetty:run-Befehl ausgeführt werden.

49
Michal Bernhard

Die Umgebungsvariable MAVEN_OPTS ist die Antwort. Der String-Inhalt von MAVEN_OPTS wird an JVM (Java.exe) übergeben.

  • Linux: in Shell-Typ export MAVEN_OPTS=....
  • Windows: Geben Sie in Shell (cmd.exe) set MAVEN_OPTS=... ein.

Beispiel: Unter Windows setzt set MAVEN_OPTS="-Xmx1024m" die Heap-Größe des Maven-Prozesses auf 1024 MB.

Update (01.04.2013): Übergeben Sie es direkt an Jetty.

Matthew Farwell (bitte bestätigen Sie seine Antwort um ihn zu würdigen) bietet die Lösung, einen verzerrten JVM-Prozess zum Ausführen von Jetty zu verwenden, der eine neue Funktion des Jetty-Plugins ist. Dies ist eine bessere Lösung, da Ersteres innerhalb desselben JVM-Prozesses wie Maven abläuft (daher Speicher gemeinsam nutzt).

53
Michal Bernhard

Mit neueren Versionen des Maven-Jetty-Plugins können Sie mvn:run-forked verwenden. Mit der Option jvmArgs können Sie -Xmx usw. einstellen.

Weitere Informationen finden Sie unter: jetty: run-forked: Ausführen einer nicht zusammengebauten Webapp in einem separaten JVM .

Ich denke, die ursprüngliche Ausgabe war Starting Jetty in separater JVM .

42
Matthew Farwell

Es scheint, dass Ihre derzeitige Vorgehensweise richtig ist. Wenn Sie Steg durch Maven laufen lassen, ist Steg ein Faden im Maven-Prozess. Wenn also der Haufen von Maven zunimmt, wird sich der Haufen von Jetty erhöhen.

Wie stellen Sie MAVEN_OPTS ein?

Ein Beispiel, das ich gefunden habe, sieht so aus: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run 

Beachten Sie, dass MAVEN_OPTS hier eine Umgebungsvariable ist und nicht an die JVM übergeben wird (wer würde nicht wissen, was er damit tun soll).

12
danben

Um vm-Argumente über die Befehlszeile anzugeben (wie ursprünglich gefragt), können Sie Folgendes tun:

mvn clean install -DargLine="-Xmx1524m"
5
Chris Ritchie

Der hier erwähnte <jvmArgs> param: Maven Jetty Plugin Hat bei mir nicht funktioniert. 

Maven-Version: Apache Maven 3.0.3

Jetty Maven Plugin-Version: Jetty-Maven-Plugin: 8.1.10.v20130312

Das hat funktioniert:

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

Mit dem Plugin können Sie jvmArgs wie folgt angeben:

<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

Unter Linux/Unix 

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

wird den Trick tun

Wie wäre es mit: mvn -DMAVEN_OPTS=-Xmx1024m jetty:run

1
Timothy

Es gibt keine Möglichkeit, die Befehlszeile zu verwenden. Sie können den mvn.cmd/mvn.sh jedoch in mvnhp.cmd kopieren und die Zeile ändern 

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

Zu 

%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

sie können das Argument -Xmx wie übergeben.

<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