2017-10-09 33 views
0

我正在運行mvn clean install並獲得GC超限問題行家內存不足錯誤

mvn -version

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T01:09:06+05:30) 
Maven home: F:\Maven_Home\apache-maven-3.5.0\bin\.. 
Java version: 1.8.0_131, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.8.0_131\jre 
Default locale: en_IN, platform encoding: Cp1252 
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows" 

還設置了MAVEN_OPTS=-Xms1024M -Xmx2048M -XX:-UseGCOverheadLimit但問題仍然存在。

這裏是錯誤的堆棧跟蹤

java.lang.OutOfMemoryError: Java heap space 
     at org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsCharArray(Util.java:578) 
     at org.eclipse.jdt.internal.compiler.util.Util.getFileCharContent(Util.java:414) 
     at org.eclipse.jdt.internal.compiler.batch.CompilationUnit.getContents(CompilationUnit.java:77) 
     at org.eclipse.jdt.internal.compiler.batch.BatchCompilerRequestor.acceptResult(BatchCompilerRequestor.java:38) 
     at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:699) 
     at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:612) 
     at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:458) 
     at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:4156) 
     at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1703) 
     at org.eclipse.tycho.compiler.jdt.JDTCompiler.compileInProcess(JDTCompiler.java:349) 
     at org.eclipse.tycho.compiler.jdt.JDTCompiler.performCompile(JDTCompiler.java:109) 
     at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:785) 
     at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) 
     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309) 

任何幫助將不勝感激。由於

jvisualvm output

回答

1

在jvisualvm中觀察過程(它是JDK的標準部分)。在那裏你可以看到內存是否被正確設置爲2048米。如果沒有,直接給Maven參數。如果您在jvisualvm中看到該參數設置正確,則只需要更多內存。

+0

感謝此分析爲我工作 –

-1

可以爲它依賴於pom.xml,見here瞭解詳情。注意我在配置中添加了該鏈接上的內容。

<project> 
    [...] 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.20.1</version> 
      <configuration> 
       <argLine>-Xmx1024m</argLine> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
    [...] 
</project> 
+0

任何關心分享爲什麼這是downvoted? – notyou