Frage

Wie VM Argumente für Jetty setzen läuft von Maven-Anlegesteg-Plugin?

Zum Beispiel, ich brauche -Xmx Argumente Jetty vom mvn jetty:run Befehl ausführen zu übergeben.

War es hilfreich?

Lösung

Die Umgebungsvariable MAVEN_OPTS ist die Antwort. Das String-Gehalt von MAVEN_OPTS wird weitergegeben JVM (java.exe).

  • Linux: in Schale-Typ export MAVEN_OPTS=....
  • Fenster: in der Schale (cmd.exe) Typ set MAVEN_OPTS=...

Zum Beispiel:. Auf Windows set MAVEN_OPTS="-Xmx1024m" setzt die Heap-Größe des Maven Prozesses 1024mb

Aktualisieren (01.04.2013):. Direkt direkt an Jetty

Matthew Farwell (bitte upvote seine Antwort ihm Kredit zu geben) kommt mit der Lösung einen gegabelten JVM Prozess der Verwendung von Jetty zu laufen die eine neue Funktion der Jetty Plugin . Dies ist eine bessere Lösung als die früheren verläuft innerhalb derselben JVM-Prozess wie Maven (also Aktien Speicher).

Andere Tipps

Bei neueren Versionen der Maven-Anlegesteg-Plugin können Sie mvn:run-forked verwenden. Die Option jvmArgs ermöglicht es Ihnen, -Xmx usw. einzustellen.

Weitere Informationen finden Sie unter: Anlegesteg: Lauf gegabelt: Ausführen eines nicht montierten Webapp in einem separaten jvm .

Ich denke, das ursprüngliche Problem wurde Jetty starten in separaten JVM .

Es scheint, wie Ihr aktueller Ansatz richtig ist - wenn Anlegestelle durch Maven läuft, Anlegestelle ein Thread innerhalb des Maven-Prozesses. So zunehmende Maven Haufen wird Anlegestelle Heap erhöhen.

Wie setzen Sie MAVEN_OPTS?

Ein Beispiel, das ich wie folgt aussieht gefunden: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run

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

Um vm Argumente über die Kommandozeile (wie ursprünglich angefragt) Sie können folgende Aktionen festlegen:

mvn clean install -DargLine="-Xmx1524m" 

Die <jvmArgs> param hier erwähnt: Maven Jetty Plugin nicht für mich arbeiten.

Maven Version: Apache Maven 3.0.3

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

Das funktioniert:

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

Unter Linux / Unix

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

den Trick

Das Plugin ermöglicht es Ihnen 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>

Sie können -Xmx Argument übergeben wie verwenden;

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

Es gibt keinen Weg, um die Kommandozeile verwenden. Aber man konnte die mvn.cmd / mvn.sh kopieren Sie die Zeile mvnhp.cmd und ä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%

%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%
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top