今天在做项目过程中发生已了一件意料之外的事情,原本好好的系统合并代码后本地DEBUG系统正常使用,当准备打包(WAR)发布时出现了如下错误:
系统资源不足。
有关详细信息, 请参阅以下堆栈跟踪。
java.lang.OutOfMemoryError: Java heap spaceat com.sun.tools.javac.util.ArrayUtils.ensureCapacity(ArrayUtils.java:60)at com.sun.tools.javac.util.SharedNameTable.fromUtf(SharedNameTable.java:130)at com.sun.tools.javac.util.Name$Table.fromUtf(Name.java:212)at com.sun.tools.javac.util.Names.fromUtf(Names.java:338)at com.sun.tools.javac.jvm.ClassWriter.writePool(ClassWriter.java:437)at com.sun.tools.javac.jvm.ClassWriter.writeClassFile(ClassWriter.java:1750)at com.sun.tools.javac.jvm.ClassWriter.writeClass(ClassWriter.java:1621)at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:746)at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1572)at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1536)at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)at com.sun.tools.javac.main.Main.compile(Main.java:523)at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)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:825)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:207)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:116)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)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:307)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
网上一顿搜索猛如虎的到如下解决方案,特总结如下方便以后处理
- 修改mvn.bat文件:加入了“set MAVEN_OPTS= -Xms512m -Xmx512m ”。此方式适用于IDE使用本地安装的MAVEN方式
- 修改环境变量:在环境变量中添加“MAVEN_OPTS : -Xms512m -Xmx512m”。此方式的优势在于重装MAVEN后任然有效
- 修改IDEA配置:File-Settings-Build,Execution,Deployment-Build Tools-Maven-Runner-VM Options设置值“-Xms512m -Xmx512m”。此方式针对使用IDEA中自带MAVEN的情况使用。
- 修改系统pom文件配置针对当前项目调整(博主推荐)
<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><fork>true</fork><meminitial>512m</meminitial><maxmem>1048m</maxmem></configuration></plugin>
</plugins>