maven编译出现Java heap space
最近拿到别组工程代码准备开搞,刚用maven打包编译就出现“java.lang.OutOfMemoryError: Java heap space”,很明显是jvm heap的分配不够,设置jvm的heap需要用Xmx参数,直接修改%M2_HOME%/bin/mvn.bat文件,这个是windows下maven的启动脚本,看到有一行
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
在后面添加-XX:Xmx=1024M 设置下jvm的最大堆。若读者是linux系统则修改同目录下的mvn脚本。
周末看《maven实战》,书上不太建议我们去修改mvn.bat文件,若修改该文件,我们在升级maven版本的时候,又要重新修改mvn.bat/mvn文件,不利于系统升级,给的建议是设置为环境变量,
Windows下添加环境变量MAVEN_OPTS的value为-Xms1024m -Xmx1024m -Xss1m
Linux下可修改.profile或者.bash_profile文件,并做如下设置:
export MAVEN_OPTS=”-Xms1024m -Xmx1024m -Xss1m”(注意:这里需要使用双引号或者单引号)
备注:
解决自动热部署时java.lang.OutOfMemoryError: PermGen space问题解决这一问题只需要增大PermGen区,默认为 64m,设置方法为:
set MAVEN_OPTS=-XX:MaxPermSize=128M
具体的参数值,可根据应用来决定