How to set VM arguments for Jetty run from maven-jetty-plugin?
For example, I need to pass -Xmx
arguments to Jetty run by the mvn jetty:run
With more recent versions of the maven-jetty-plugin, you can use mvn:run-forked
. The option jvmArgs will allow you to set -Xmx etc.
For more information, see: jetty:run-forked : Running an unassembled webapp in a separate jvm.
I think the original issue was Starting Jetty in separate JVM.
you can use to pass -Xmx argument like;
<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>
To specify vm arguments via the command line (as originally asked) you can do the following:
mvn clean install -DargLine="-Xmx1524m"
On Linux/Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
will do the trick
The <jvmArgs>
param mentioned here : Maven jetty plugin
didn't work for me .
Maven version : Apache Maven 3.0.3
Jetty Maven plugin version : jetty-maven-plugin:8.1.10.v20130312
This worked :
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
The enviroment variable MAVEN_OPTS is the answer. The string content of MAVEN_OPTS is passed to JVM (java.exe).
export MAVEN_OPTS=....
set MAVEN_OPTS=...
For example: on Windows set MAVEN_OPTS="-Xmx1024m"
sets the heap size of the Maven process to 1024mb.
Update (01.04.2013): Pass it directly to Jetty.
Matthew Farwell (please upvote his answer to give him credit) comes with the solution of using a forked JVM process to run Jetty which is a new feature of the Jetty plugin. This is a better solution as the former runs inside same JVM process as Maven (thus shares memory).