使用Maven是出现OutOfMemory错误,即使设置了MAVEN_OPTS也不起作用

今天终于找到了一个困扰我多时的Maven问题: CMD下做mvn clean install 时,在跑unit test的时候会出现OutOfMemory的错误,即使根据网上的结果在mvn.bat 里面设置了set MAVEN_OPTS=-Xmx1024m -Xms512m也不起作用。但是在RAD中却能顺利通过。

今天从此外文链接中找到了问题的答案:

http://stackoverflow.com/questions/4066424/java-lang-outofmemoryerror-java-heap-space-in-maven

原来是Maven的 maven-surefire-plugin 插件默认会fork出一个新的jvm去跑unit test, 所以上面设置的MAVEN_OPTS 并不会对surefire插件新开的jvm起作用。

两种方法来解决这个问题:

1.  把forkMode 设置为never(这不是一个好主意,因为maven不会与test隔离)

2. 使用argLine 参数(正确的做法),类似如下:

<configuration> 
 
<argLine>-Xmx1024m</argLine> 
</configuration> 

 

但是实质上这个问题,很有可能还是unit test的内存泄露问题引起的。

 

------updated on 2011-12-28

今天又发现一个解决方法,将JAVA_HOME 目录指向WebSphere7.0提供的java目录,则可以完全通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值