GWT,Maven – 无法为对象堆预留足够的空间

我正在尝试使用Maven构build一个GWT项目。 当gwt-maven-plugin试图编译代码时,会抛出一个错误:

[ERROR] Error: Could not create the Java Virtual Machine. [INFO] Could not reserve enough space for object heap 

我试过mvn -Dgwt.extraJvmArgs=-Xmx1280m clean install ,它没有帮助。

一个明显的解决scheme通常是设置MAVEN_OPTS系统variables。 所以,我添加了值为-XX:MaxPermSize=512m -Xmx1280m MAVEN_OPTS -XX:MaxPermSize=512m -Xmx1280m 。 如果我运行echo %MAVEN_OPTS% ,我看到-XX:MaxPermSize=512m -Xmx1280m

现在,如果我尝试运行mvn clean install ,我会得到:

 Error occurred during initialization of VM Could not reserve enough space for object heap Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 

这很奇怪,因为任务pipe理器说,我有5.9 Gb的可用内存。 为什么可以抛出这个错误? 为什么不能保留所需的空间? 我正在使用32位JVM和Windows 8。

更新 :64位JVM帮助。 我没有想到,对于32位JVM, -XX:MaxPermSize=512m -Xmx1280m太多了。

你需要通过配置传递给gwt-maven-plugin

 mvn -Dgwt.extraJvmArgs=-Xmx1280m clean install 

另见http://mojo.codehaus.org/gwt-maven-plugin/compile-mojo.html

你也可以尝试减少内存的数量:

无法为对象堆预留足够的空间

这听起来像JVM不能保留所需的空间。 尝试-Xmx1024m或-Xmx768m。

如果这也不起作用,您可以尝试使用64位JVM编译代码。