Maven - 无法为对象堆错误预留足够的空间

The*_*der 10 jvm maven

我是Maven来构建我的Java项目.几次成功构建后,我现在收到以下错误:

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)

在我的构建使用的maven.sh文件中,我添加了以下内容作为第一行

export MAVEN_OPTS=-Xmx512m
Run Code Online (Sandbox Code Playgroud)

我仍然得到错误.

有人可以建议修复吗?

The*_*der 17

解决方案是将maven-surefire-plugin的forkMode设置为"never".似乎在运行测试时,maven肯定会生成一个新的JVM.将其设置为永远不会解决问题.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.7.2</version>
    <configuration>
        **<forkMode>never</forkMode>**
        <argLine>-Xms1024m -Xmx1024m -XX:MaxPermSize=2048m</argLine>
        <systemPropertyVariables>
            <user.name>${user.name}</user.name>
        </systemPropertyVariables>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)


Did*_*r L 12

我有同样的问题,我认为Maven没有使用正确的jvm.你可以用它来检查

mvn -version
Run Code Online (Sandbox Code Playgroud)

在我的情况下,JVM在我指定的JAVA_HOMEPATH是不正确的:我在使用x86 JDK 6,而不是一个64位的JDK 7,修复这个问题得到了解决.