获取OutOfMemoryException:jenkins中的Permgern空间问题

时间:2016-09-10 20:52:06

标签: eclipse maven jenkins heap-dump

在Jenkins中构建Maven项目时出现 OutOfMemoryExeption:Permgern space 问题。 在构建过程结束时,消息显示为" Build Success" 。但是在下面的那行之后错误msg正在打印。            致命错误:Permgern空间 一旦这个例外出现,每次整个詹金斯都被绞死,即没有 詹金斯的相应页面,即使仪表板没有打开。

以下是Jenkins的命令行参数错误。           Java HotSpot(TM)64位服务器VM警告:异常java.lang.OutOfMemoryError 发生处理程序未知的调度信号 - 虚拟机可能需要强行终止。

以下是来自控制台O / P的错误详细信息 -

    [INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building EmployeeInformation 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
**[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.161 s
[INFO] Finished at: 2016-09-11T00:55:52+05:30
[INFO] Final Memory: 5M/76M**
[INFO] ------------------------------------------------------------------------
Parsing POMs
Established TCP socket on 49708
[Employee_Management] $ "C:\Program Files\Java\jdk1.7.0_03/bin/java" -cp "C:\Users\pc\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven32-agent-1.7.jar;C:\Program Files\Apache\maven\apache-maven-3.3.9\boot\plexus-classworlds-2.5.2.jar;C:\Program Files\Apache\maven\apache-maven-3.3.9/conf/logging" jenkins.maven3.agent.Maven32Main "C:\Program Files\Apache\maven\apache-maven-3.3.9" C:\Users\pc\.jenkins\war\WEB-INF\lib\remoting-2.62.jar C:\Users\pc\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven32-interceptor-1.7.jar C:\Users\pc\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-**commons-1.7.jar 49708
FATAL: PermGen space
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
FATAL: PermGen space**
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at jenkins.maven3.agent.Maven32Main.main(Maven32Main.java:144)
    at jenkins.maven3.agent.Maven32Main.main(Maven32Main.java:74)
Caused by: java.io.EOFException: unexpected stream termination
    at hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java:365)
    at hudson.remoting.ChannelBuilder.build(ChannelBuilder.java:310)
    at hudson.remoting.Launcher.main(Launcher.java:530)
    at hudson.remoting.Launcher.main(Launcher.java:513)
    at hudson.remoting.Launcher.main(Launcher.java:504)
    at hudson.remoting.Launcher.main(Launcher.java:500)
    ... 6 more

以下是我试图解决的一些可能步骤 -     (1)在POM.XML下面添加标签。                 attached image link for Changed permgern space configuration in POM.xml     (2)在环境变量中设置JAVA_OPTS。                 attached image link for setting enviromental variables

但是,不幸的是,他们都没有工作。还有问题。 在搜索了一些地方之后,我知道了               -XX:PermSize = 256m -XX:MaxPermSize = 512m 声明将解决问题。但我不确定何处和如何以提供上述声明。

伙计们,Plz通过我附上的链接,让我知道如果我做错了什么。 任何帮助将不胜感激。

BR // Abinash

1 个答案:

答案 0 :(得分:1)

将您的选项添加到 _JAVA_OPTIONS 环境变量中 - 这肯定会有效。

否则,为了在Maven构建环境中自定义编译器选项,有几种可能性。有关概述,请参阅this question