Sonar java.lang.OutOfMemoryError:PermGen空间

csi*_*ilk 1 java heap permgen bamboo sonarqube

在ant中运行构建时出现以下错误

buildcallbacks.xml:39: org.sonar.runner.RunnerException: java.lang.OutOfMemoryError: PermGen space
Run Code Online (Sandbox Code Playgroud)

它是声纳运行代码的构建的一部分.

有没有办法让我知道这个错误的确切来源,即是声纳服务器还是客户端等?

这是我的buildcallbanks.xml的第39行

<sonar:sonar />
Run Code Online (Sandbox Code Playgroud)

编辑:我已经尝试从Sonar中的wrapper.conf增加permsize,无论我设置多高,我仍然会遇到同样的问题.我还得错过什么?

kab*_*sha 7

我实际上回过头来看看你之后 - 它仍然失败了.你快到了,但我发现了两件事:

  1. 您使用过JAVA_OPTS而不是ANT_OPTS
  2. 仅当您还使用UseConcMarkSweepGC时才使用CMSClassUnloadingEnabled.请参见此处:CMSPermGenSweepingEnabled与CMSClassUnloadingEnabled

所以现在似乎正在进行处理的设置是:

ANT_OPTS="-Xmx1024m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)

更新: 多年后,我再次重新访问了这个问题,因为问题再次发生.你实际上并不需要弄乱GC设置,只需要内存.事实上,正确的选择是:

ANT_OPTS="-Xmx2G -XX:MaxPermSize=1G"
Run Code Online (Sandbox Code Playgroud)

显然,您可以调整内存值以适合您的机器.

希望这有助于其他人.