2017-10-09 36 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