今天maven install时碰到的两个问题(堆溢出和编译错误)
Posted Fight With Me!!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天maven install时碰到的两个问题(堆溢出和编译错误)相关的知识,希望对你有一定的参考价值。
问题1.maven install时出现,日志如下:
系统资源不足。
有关详细信息,请参阅以下堆栈追踪。
java.lang.OutOfMemoryError: Java heap space at com.sun.tools.javac.util.List.prepend(List.java:145) at com.sun.tools.javac.jvm.ClassReader.openArchive(ClassReader.java:1457) at com.sun.tools.javac.jvm.ClassReader.list(ClassReader.java:1742) at com.sun.tools.javac.jvm.ClassReader.listAll(ClassReader.java:1882) at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1903) at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1538) at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355) at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:256) at com.sun.tools.javac.tree.Tree$TopLevel.accept(Tree.java:382) at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:221) at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:235) at com.sun.tools.javac.comp.Enter.complete(Enter.java:444) at com.sun.tools.javac.comp.Enter.main(Enter.java:429) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:404) at com.sun.tools.javac.main.Main.compile(Main.java:592) at com.sun.tools.javac.main.Main.compile(Main.java:544) at com.sun.tools.javac.Main.compile(Main.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso at java.lang.reflect.Method.invoke(Method.java:592) at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(Javac at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler. at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMo at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginM at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defaul at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLife at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Default at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandl at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLife at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMo at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginM at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defaul ... 17 more [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 minutes 34 seconds [INFO] Finished at: Wed Jul 20 17:22:53 CST 2011 [INFO] Final Memory: 60M/63M [INFO] ------------------------------------------------------------------------
原因分析:虚拟机堆溢出,默认只有63M,工程比较多时容易出现此问题
解决方案:在maven启动脚本(mvn.bat)中,重新设置堆大小(set MAVEN_OPTS= -Xms128m -Xmx512m)
问题2:maven install时出现此问题,日志如下:
[INFO] Trace org.apache.maven.BuildFailureException: Compilation failure at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa ultLifecycleExecutor.java:699) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi fecycle(DefaultLifecycleExecutor.java:540) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau ltLifecycleExecutor.java:519) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan dleFailures(DefaultLifecycleExecutor.java:371) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen ts(DefaultLifecycleExecutor.java:332) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi fecycleExecutor.java:181) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137) at org.apache.maven.cli.MavenCli.main(MavenCli.java:356) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation fail ure at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompiler Mojo.java:516) at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi nManager.java:483) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa ultLifecycleExecutor.java:678)
原因分析:编译不通过,检查JDK版本
解决方案:使用正确的JDK版本,和开发时的一致
以上是关于今天maven install时碰到的两个问题(堆溢出和编译错误)的主要内容,如果未能解决你的问题,请参考以下文章
idea maven打包 install 报错The packaging for this project did not assign a file to the build artifact(示例