Domanda

Come impostare gli argomenti VM per Jetty eseguito da Maven-molo-plugin?

Per esempio, ho bisogno di passare argomenti -Xmx a Jetty gestito dal comando mvn jetty:run.

È stato utile?

Soluzione

Le MAVEN_OPTS variabile d'ambiente è la risposta. Il contenuto della stringa di MAVEN_OPTS viene passata a JVM (java.exe).

  • Linux: nel tipo di shell export MAVEN_OPTS=....
  • di Windows: in guscio (cmd.exe) tipo set MAVEN_OPTS=...

Ad esempio:. Su Windows set MAVEN_OPTS="-Xmx1024m" imposta la dimensione heap del processo di Maven per 1024MB

Aggiorna (01.04.2013):. Passa direttamente al Molo

Matthew Farwell (si prega di upvote sua risposta dargli credito) viene fornito con la soluzione di utilizzare un processo di JVM biforcuta per eseguire Jetty che è una nuova caratteristica del Jetty plug . Si tratta di una soluzione migliore, come gli ex eseguito all'interno stesso processo JVM come Maven (e quindi la memoria di azioni).

Altri suggerimenti

Con le versioni più recenti del Maven-molo-plugin, è possibile utilizzare mvn:run-forked. I jvmArgs opzione consente di impostare -Xmx etc.

Per ulteriori informazioni, vedere: molo: run-biforcuta: Esecuzione di un webapp smontati in una JVM separata.

Credo che il problema originale è stato A partire Jetty in JVM separata .

Sembra che il tuo approccio attuale è corretta - quando si esegue pontile attraverso Maven, molo è un filo all'interno del processo di Maven. Così mucchio crescente di Maven aumenterà mucchio di pontile.

Come stai impostando MAVEN_OPTS?

Un esempio che ho trovato si presenta così: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run

Si noti che MAVEN_OPTS è una variabile di ambiente qui, e non passò alla JVM (che non saprebbe cosa fare con esso).

Per specificare gli argomenti VM tramite la riga di comando (come originariamente richiesto) è possibile effettuare le seguenti operazioni:

mvn clean install -DargLine="-Xmx1524m" 

Il param <jvmArgs> qui menzionato: Maven pontile plug-in non ha funzionato per me.

Versione Maven: Apache Maven 3.0.3

Jetty Maven versione del plugin: molo-maven-plugin: 8.1.10.v20130312

Questo ha funzionato:

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

Su Linux / Unix

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

farà il trucco

Il plugin permette di specificare jvmArgs come questo:

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

è possibile utilizzare per passare -Xmx argomento simili;

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

Non c'è modo utilizzando la riga di comando. Ma si potrebbe copiare il mvn.cmd / mvn.sh a mvnhp.cmd e cambiare la linea

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

Per

%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%
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top