set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Xms256m -Xmx256m -XX:NewSize=96m -XX:MaxNewSize=96m -XX:PermSize=96M -XX:MaxPermSize=96m
windows下:
set MAVEN_OPTS="$MAVEN_OPTS -Xms256m -Xmx512m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=64m";
linux、mac下:
export MAVEN_OPTS="$MAVEN_OPTS -Xms256m -Xmx512m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=64m";
有时候我们需要设定maven环境下的JVM参数,以便通过maven执行的命令或启动的系统能得到它们需要的参数设定。比如:当我们使用jetty:run启动jetty服务器时,在进行热部署时会经常发生:java.lang.OutOfMemoryError: PermGen space问题,这时我们需要增大JVM参数MaxPermSize的值。再者,当我们需要进行远程调试时,也需要设置监听端口。maven配置jvm参数的地方是%M2_HOME%/bin/mvn.bat文件,这是启动Maven的脚本文件,在该文件中你能看到有一行注释为:@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000.通过添加set MAVEN_OPTS可以为maven设定jvm参数了。比如:
1.建立远程调试,端口为:4000的设定为:
set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
注意:suspend最好设定为n.设定上述参数后,在eclipse中新建远程调试,设置端口为4000,这样通过jetty:run启动系统时就可以进行远程调试了。
2.解决自动热部署时java.lang.OutOfMemoryError: PermGen space问题解决这一问题只需要增大PermGen区,默认为 64m,设置方法为:
set MAVEN_OPTS=-XX:MaxPermSize=128M
window下,可以把如下内容保存成bat文件
D:
cd D:\code\project\branches\project-war
set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -Xms256m -Xmx512m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:PermSize=128M -XX:MaxPermSize=128m
mvn jetty:run -Djetty.port=8080