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 command.
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 command.
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).
It seems like your current approach is correct - when running jetty through maven, jetty is a thread inside the maven process. So increasing maven's heap will increase jetty's heap.
How are you setting MAVEN_OPTS?
One example I found looks like this: MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run
Note that MAVEN_OPTS is an environment variable here, and not passed to the JVM (who wouldn't know what to do with it).
As referenced in Configuring Apache Maven, discussing the MAVEN_OPTS environment variable referenced in other answers, you can also control project configuration with files in the .mvn directory.
For VM arguments in particular, you can add a .mvn/jvm.config file containing the associated parameters:
Starting with Maven 3.3.1+ you can define JVM configuration via
${maven.projectBasedir}/.mvn/jvm.configfile which means you can define the options for your build on a per project base. This file will become part of your project and will be checked in along with your project. So no need anymore forMAVEN_OPTS,.mavenrcfiles.