gpt4 book ai didi

windows - 在 Jenkins : GC Overhead Limit 中对大型 Grails 项目运行编译时出错

转载 作者:可可西里 更新时间:2023-11-01 14:51:53 30 4
gpt4 key购买 nike

我在这方面已经开始无计可施了。

我让 Jenkins 在 Windows Server 2008 RC 2 机器上的 tomcat 容器内运行。我们这里有一个大型 Grails 项目,其中有一些相关的内部插件(大约 10 个)。部分流程是运行

grails compile

关于项目(在jenkins中使用Grails插件,Grails版本1.3.7)

工作开始时很好,但在这一步出现以下错误:

[groovyc] Compiling 103 source files to D:\jenkins\jobs\my-build-job\workspace\my-application\target\classes
Compilation error: java.lang.OutOfMemoryError: GC overhead limit exceeded

我在 Grails 插件的“参数”表单字段中向这个特定构建步骤添加参数以及向 tomcat servlet 容器添加 java 参数(通常互联网推荐的 java 选择此 GC 开销)都没有成功错误)。这是 servlet 的 wrapper.conf 的一部分:

wrapper.java.additional.8=-Xmx2048m
wrapper.java.additional.9=-Xss256k
wrapper.java.additional.10=-Xms1024m
wrapper.java.additional.11=-XX:+UseParallelGC
wrapper.java.additional.12=-XX:-UseGCOverheadLimit
wrapper.java.additional.13=-XX:MaxPermSize=256m

有没有人有任何想法/建议??我觉得我已经尝试了所有方法来为这项工作提供足够的内存(盒子有 12 GB 的 RAM,我的意思是正如你在上面看到的那样,我将堆空间从 256 之类的更小的东西增加了,并且没有 PermGen 调整以使用 2gigs 和256M的PermGen!应该不是提示资源紧张吧!)

请帮忙!

最佳答案

好吧,对于那些偶然发现这个问题的人,我有一个解决方案。

Windows 中的 JAVA_OPTS 似乎很难设置和保持设置,但使用 Jenkins 中的 EnvInject 插件,我能够使用以下内容: https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

在新添加的'Build Environment'步骤下,

选中标有“将环境变量注入(inject)构建过程”的框

并将其添加到“属性内容”文本框:

JAVA_OPTS=-Xmx1024m -XX:MaxPermSize=256m

没有引用!

正如我之前所说,我之前通过为 windows 设置一个系统范围的 JAVA_OPTS 变量来解决这个问题(这对我们服务器的需求来说太麻烦了),所以可能有不止几种方法可以完成这项工作在这里完成。

希望这对其他受挫的 Windows/Jenkins/Grails 用户有帮助!

关于windows - 在 Jenkins : GC Overhead Limit 中对大型 Grails 项目运行编译时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041861/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com