java.lang.OutOfMemoryError:我案例中的Java堆空间

时间:2015-12-09 20:01:47

标签: java maven

我有一个java项目,我用Maven构建。

我的maven版本是3.1.1 我的java版本是1.7.0_25

当我运行mvn clean install时,出现以下错误:

The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: Java heap space
    at com.sun.tools.javac.file.ZipFileIndex$ZipDirectory.findCENRecord(ZipFileIndex.java:552)
    at com.sun.tools.javac.file.ZipFileIndex$ZipDirectory.<init>(ZipFileIndex.java:497)
    at com.sun.tools.javac.file.ZipFileIndex.checkIndex(ZipFileIndex.java:191)
    at com.sun.tools.javac.file.ZipFileIndex.<init>(ZipFileIndex.java:137)
    at com.sun.tools.javac.file.ZipFileIndexCache.getZipFileIndex(ZipFileIndexCache.java:100)
    at com.sun.tools.javac.file.JavacFileManager.openArchive(JavacFileManager.java:559)
    at com.sun.tools.javac.file.JavacFileManager.openArchive(JavacFileManager.java:482)
    at com.sun.tools.javac.file.JavacFileManager.listContainer(JavacFileManager.java:368)
    at com.sun.tools.javac.file.JavacFileManager.list(JavacFileManager.java:644)
    at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2446)
    at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:2143)
    at com.sun.tools.javac.code.Symbol.complete(Symbol.java:421)
    at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:298)
    at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:459)
    at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:258)
    at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:272)
    at com.sun.tools.javac.comp.Enter.complete(Enter.java:484)
    at com.sun.tools.javac.comp.Enter.main(Enter.java:469)
    at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:929)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
    at com.sun.tools.javac.main.Main.compile(Main.java:439)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:823)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)

如何解决?我用谷歌搜索并看到许多答案,这些答案配置项目的pom来解决问题。但它是否可以在全球范围内进行配置?如果是这样,怎么办?

(我记得有一种方法可以在maven的全局设置xml文件中配置它,但我无法回想起确切的文件以及如何在那里配置。这是我的实际问题我真的需要一个答案,我不是在寻找一种只在每个项目的pom.xml中配置的方法,而是一个maven全局配置)

1 个答案:

答案 0 :(得分:0)

使用maven Run Configurations增加堆空间。

-Xmx512用于maven使用的JRE