我正在浏览我的Web应用程序,其中包括多个项目,即大约23个项目,其中一些是Java项目,一些是动态Web项目。当我从RAD制作EAR时,它是成功生成的,但是当我尝试从MAVEN制作EAR时,它会抛出堆大小问题。当我减少POM.xm
l中的项目数量,即从23到12时,EAR成功生成,但增加项目数会带来相同的堆大小错误。
如果我设置环境变量MAVEN_OPTS = -Xmx1024M
,它就不起作用了。我的PC RAM为2 GB,当我尝试设置MAVEN_OPTS = -Xmx2048M
时,它会抛出错误,因为它无法为JVM保留这么多空间。
我有jdk 1.7和maven 3。
请建议。
答案 0 :(得分:4)
我们的多模块项目存在同样的问题。编译器或编译器插件中似乎存在内存泄漏。因此,当Maven开始构建EAR时,它也会消耗太多内存来构建EAR项目。但是,您可以建议编译器在单独的进程中运行,这样就不会出现此问题(请参阅Maven docs):
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
答案 1 :(得分:3)
建议:
install
目标以正确的顺序逐个构建一个组件项目。 (问题可能是由于Maven在构建单个项目之间在内存中保留了太多东西。)还值得研究为什么它无法分配2Gb的堆空间。这可能是交换空间的问题,或者可能是32位Windows 2Gb限制可以解决。
罗兰的想法也很好。