2012-07-23 111 views
1

我正在製作一個由多個項目組成的Web應用程序,其中包括23個項目,其中一些是Java項目,另外一些是動態Web項目。當我從RAD製作EAR時,它會成功生成,但是當我嘗試從MAVEN製作EAR時,它會引發堆大小問題。當我減少POM.xm中的項目數(即從23到12)時,成功生成了EAR,但增加項目數會帶來堆大小相同的錯誤。從maven構建jvm堆大小錯誤

如果我設置環境變量MAVEN_OPTS = -Xmx1024M,它不起作用。我的電腦內存爲2 GB,當我嘗試設置MAVEN_OPTS = -Xmx2048M時,由於它無法爲JVM保留這麼多空間,因此會引發錯誤。

我有jdk 1.7和maven 3.

請確認。

+1

您正在使用maven從CMD或任何IDE? – 2012-07-23 11:35:51

+0

這兩個嘗試都是在同一個操作系統上進行的,對吧?沒有改變的環境? – tartar 2012-07-23 11:40:18

+0

從cmd使用命令mvn -e install – ankit3533 2012-07-24 07:01:33

回答

3

建議:

  • 獲得一臺具有更多的內存。
  • 在運行構建之前關閉IDE。
  • 嘗試將堆大小增加到之間 1Gb和2Gb。
  • 嘗試使用install目標以正確的順序逐個構建組件項目。 (有機會,這個問題是由於Maven的保持太多的東西,在內存中建立個別項目之間。)

這也是值得探討爲什麼不能分配的堆2GB空間。這可能是交換空間的一個問題,或者它可能是可以解決的32位Windows 2Gb限制。

而羅蘭的想法也不錯。

+0

我試過給它1536,但仍然有相同的堆大小問題錯誤。 – ankit3533 2012-07-23 15:13:29

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

嗨,你能告訴我應該在哪裏包括這個代碼.....我在settings.xml中添加它,但它沒有在那裏工作。 – ankit3533 2012-07-23 13:10:26

+0

必須將其添加到pom.xml的部分。如果你按照Maven文檔的鏈接,你可以看到完整的結構。 – 2012-07-23 13:12:34

+0

我試過使用這個,但它不工作,然後也......拋出同樣的錯誤。有什麼建議麼? – ankit3533 2012-07-23 15:11:28