首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-09-07 
使用Maven是出现OutOfMemory错误,即使设置了MAVEN_OPTS也不起作用今天终于找到了一个困扰我多时的Maven问

使用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目录,则可以完全通过

热点排行