我的Jenkins工作中出现以下异常: -
java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:201) at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:149) at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at org.apache.log4j.LogManager.(LogManager.java:86) at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
......
我通过Maven在这个工作中运行我的Junit测试用例.正如詹金斯所建议的,我有一个新的全球财产MAVEN_OPTS
,其价值高达-XX:MaxPermSize=1024m
.
但我仍然继续得到java.lang.OutOfMemoryError: PermGen
.
非常感谢任何帮助.
Thanks Stefan for your answer. Unfortunately adding the default log4j classloader did not solve my issue. However the link provided by you solved the issue.
I had to add the following configuration in my "maven-surefire-plugin" definition:-
<argLine>-XX:PermSize=512m -XX:MaxPermSize=1024m</argLine>
This has fixed my problem.