当Maven项目很大,或者你运行诸如 mvn site 这样的命令的时候,maven运行需要很大的内存,在默认配置下,就可能遇到java的堆溢出。如:
[INFO] Building jar: /home/dl9pf/svn/mindquarry/mindquarry-jcr/mindquarry-jcr-changes/target/mindquarry-migration-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Java heap space
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.OutOfMemoryError: Java heap space
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:518)
...
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)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 minutes 14 seconds
[INFO] Finished at: Wed Sep 05 07:44:55 CEST 2007
[INFO] Final Memory: 37M/63M
[INFO] ------------------------------------------------------------------------
解决的方法是调整java的堆大小的值。
Windows环境中
找到文件%M2_HOME%\bin\mvn.bat ,这就是启动Maven的脚本文件,在该文件中你能看到有一行注释为:
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...
它的意思是你可以设置一些Maven参数,我们就在注释下面加入一行:
set MAVEN_OPTS= -Xms128m -Xmx512m
之后,当你运行Maven命令如 mvn -version 的时候,你会看到如下的输出:
E:\test>mvn -version
E:\test>set MAVEN_OPTS= -Xms128m -Xmx512m
Maven version: 2.0.9
Java version: 1.6.0_07
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"
我们看到,配置的Maven选项生效了,OutOfMemoryError也能得以相应的解决。
Linux环境中
也可以通过设置环境变量解决该问题, 如,编辑文件 /etc/profile 如下
MAVEN_OPTS=-Xmx512m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH
如果你使用Hudson
用 Hudson + Maven做持续集成,并不幸也遇到了类似的错误,那么上述两种方式都将不再起作用了,因为Hudson使用自己的maven-agent来启动Maven,不会去调用Maven的脚本,自然相应的配置也就无效了。
好在Hudson也给为我们提供了配置点,在Hudson的项目配置页面中,有一块Build区域,这里我们已经设置了Root Pom和Goals。注意该区域的右下角有一个"Advanced..."按钮,点击会看到MAVEN_OPTS输入框,这里输入"-Xmx512m"就OK了。
m2eclipse中
类似以上的方法都会失效,所幸m2eclipse提供了配置点。步骤如下:
项目上右击 -> Run As -> Run Configurations -> Maven Build 上右击 -> New
这时会看到一个maven运行配置对话框,这里面其它的配置我不多解释了,为了解决内存溢出的问题,我们可以选择第二个TAB: JRE,然后在VM arguments中输入配置如:-Xms128m -Xmx512m。
分享到:
相关推荐
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
一键删除maven本地仓库中下载错误的jar包资源(以lastUpdated结尾的文档)
清楚maven中错误的jar,将地址改成自己maven仓库的地址就可以双击执行就可以了。
Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。 在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。 Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件...
maven中setting阿里云的详细镜像配置,setting的配置细节 maven中setting阿里云的详细镜像配置,setting的配置细节
解决maven下载依赖失败的错误文件的命令执行文件
自己整理的maven打包出现错误的解决办法、含有截图等 附带maven搭建私服等资料
maven 实用手册 中文 Maven权威指南中文版 Maven权威指南中文版
Maven 中文简介, 包含Maven 语法, 节点讲解, 使用方法.
maven 常见错误集合
解决maven项目创建过慢的问题.txt
Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令
包内喊有5个文档,包含maven本地搭建,私服搭设,于eclipse集成,创建web项目,创建聚合项目,打包和问题解决说明
maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0
解决maven项目找不到tools-1.8.0.jar的问题,缺失tools-1.8.0.jar包
既能不升级jar包又能使用高版本依赖同时还不造成冲突的完美解决方案
我们在IDEA的安装目录下找到 /plugins/maven/lib/maven2/conf 或者 /plugins/maven/lib/maven3/conf目录(如果两个都有建议都改掉),向其中的setting.xnl文件中的/标签下添加如下的仓库地址(这里以阿里云为例): ...
主要介绍了Maven发布Jar包中文乱码解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
maven-javadoc-plugin 插件 解决中文乱码 和注解 时间问题, 包括eclipse.ini设置、pom.xml设置、maven build GBK设置、eclipse注释设置、eclipse注释模版(可导入)。
maven projects plugin出现红线怎么办,网上给许多比较蹩脚的方案。经过研究发现一个简洁的方法,一分钟就能搞定。