开发者

Specifying Maven memory parameter without setting MAVEN_OPTS environment variable

I was wondering if it is possible to specify Maven memory boundaries with a syntax similar to:

mvn -Dtest=FooTest -DXmx=512M clean test

I tried a couple of variations till now, unsuccessfully.

I am aware of MAVEN_OPTS environment variable, but I would like to avoid that.

Related to the above question, it would be nice to know if there is the possibility to specify the memory behavior of the surefire plugin in a similar manner开发者_如何学运维, so that it forks the jvm using the overridden memory amount (eventually overriding the <argLine> parameter in the pom plugin configuration, if present)


To specify the max memory (not via MAVEN_OPTS as originally requested) you can do the following:

mvn clean install -DargLine="-Xmx1524m"


You can configure the surefire-plugin to use more memory. Take a look on Strange Maven out of memory error.

Update: If you would like to set the parameter from command-line take a look on {{mvn.bat}} (or {{mvn}} shell script) in your maven installation directory. It uses with additional options specified in command line.

Next possibility is to set surefire-plugin and use properties specified in command-line, e.g. mvn ... -Dram=512

and

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <forkMode>once</forkMode>
        <argLine>-Xms${ram}m -Xmx${ram}m</argLine>
    </configuration>
</plugin>


Since Maven 3.3.1 a default can also be specified in ${maven.projectBasedir}/.mvn/jvm.config

It is documented here: https://maven.apache.org/docs/3.3.1/release-notes.html#JVM_and_Command_Line_Options

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜