首页 > jenkins 编译grails项目的时候 GC overhead limit exceeded

jenkins 编译grails项目的时候 GC overhead limit exceeded

在 windowns 7 下 使用Jenkins(1.626) 部署grails(1.3.9) 项目的时候报如下错误:
[workspace] $ cmd.exe /C '"D:\grails\grails-1.3.9\bin\grails.bat -Dgrails.work.dir=/D:/Jenkins/jobs/yp_dev/workspace//target -Dgrails.env=development war ROOT.war --non-interactive --plain-output && exit %%ERRORLEVEL%%"'
Welcome to Grails 1.3.9 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: D:\grails\grails-1.3.9

Base Directory: D:\Jenkins\jobs\yp_dev\workspace
Resolving dependencies...
Dependencies resolved in 1227ms.
Running script D:\grails\grails-1.3.9\scripts\War.groovy
Environment set to development
Setting non-interactive mode
[groovyc] Compiling 1 source file to D:\Jenkins\jobs\yp_dev\workspace\target\projects\workspace\plugin-classes
[groovyc] Compiling 1089 source files to D:\Jenkins\jobs\yp_dev\workspace\target\classes
Compilation error: java.lang.OutOfMemoryError: GC overhead limit exceeded
Build step 'Build With Grails' marked build as failure
Finished: FAILURE

补充说明:JDK 1.7
本人试着在 jenkins 的安装目录中修改 jenkins.xml 中的参数,如下:
<arguments> -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Xms1g -Xmx1g -XX:PermSize=1g -XX:MaxPermSize=1g -Djsse.enableSNIExtension=false -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

1、上述报错问题依旧存在。
2、同时在修改上述参数时候,发现一个奇怪的问题,当 -Xmx1g 的值超过 1500m的时候,则jenkins 的服务无法启动。
请各位不吝赐教...谢谢。


第一个问题 “上述报错问题依旧存在”的解答:

应该内存的问题。需要加大内存。这个地方牵涉到两个内存。一个是jenkins使用的内存。另外一个是grails 构建使用的内存。
据我了解,grails war 这样的命令会启动一个进程来处理。看你的报错应该是grails这个进程,内存不足。想办法加大grails的内存就可以。看看grails项目中的那个 BuildConfig.groovy文件。

第二个问题 “同时在修改上述参数时候………”的解答:
当你配置的内存,大于你的物理可用内存的时候,对不起。java进程就无法启动了。

【热门文章】
【热门文章】