从maven进行构建时jvm堆大小错误

时间:2012-07-23 11:34:15

标签: java maven-3

我正在浏览我的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。

请建议。

2 个答案:

答案 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)

建议:

  • 获得更多内存的机器。
  • 在运行构建之前关闭IDE。
  • 尝试将堆大小增加到 1Gb和2Gb之间的某个数字
  • 尝试使用install目标以正确的顺序逐个构建一个组件项目。 (问题可能是由于Maven在构建单个项目之间在内存中保留了太多东西。)

还值得研究为什么它无法分配2Gb的堆空间。这可能是交换空间的问题,或者可能是32位Windows 2Gb限制可以解决。

罗兰的想法也很好。