在不设置MAVEN_OPTS环境变量的情况下指定Maven内存参数

时间:2011-09-23 10:44:51

标签: maven environment-variables

我想知道是否可以使用类似于:

的语法指定Maven内存边界
mvn -Dtest=FooTest -DXmx=512M clean test

到目前为止我尝试了几种变化,但没有成功 我知道MAVEN_OPTS环境变量,但我想避免这种情况。

与上述问题相关,很高兴知道是否有可能以类似的方式指定 surefire 插件的内存行为,以便它使用重写来分配jvm内存量(最终覆盖pom插件配置中的<argLine>参数,如果存在)

3 个答案:

答案 0 :(得分:49)

要指定最大内存(不是通过最初请求的MAVEN_OPTS),您可以执行以下操作:

mvn clean install -DargLine="-Xmx1524m"

答案 1 :(得分:10)

您可以配置surefire-plugin以使用更多内存。看看吧 Strange Maven out of memory error

<强>更新: 如果您想从命令行设置参数,请查看您的maven安装目录中的{{mvn.bat}}(或{{mvn}} shell脚本)。它使用命令行中指定的其他选项。

下一种可能性是设置surefire-plugin并使用命令行中指定的属性,例如mvn ... -Dram=512

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

答案 2 :(得分:2)

由于Maven 3.3.1,也可以在${maven.projectBasedir}/.mvn/jvm.config

中指定默认值

此处记录:https://maven.apache.org/docs/3.3.1/release-notes.html#JVM_and_Command_Line_Options