处理OutOfMemoryError的更好方法:SonarQube计算引擎中的Java堆空间

时间:2017-11-07 03:02:11

标签: java maven sonarqube

我正在进行SonarQube分析的巨大maven项目,从maven一切都很好,但由于OutOfMemoryError异常,SonarQube后台任务失败。

我已经增加了计算引擎的堆内存及其现在的工作,但有没有办法在SonarQube中处理这个而不增加内存,比如将后台任务拆分为较小的任务并合并结果?

1 个答案:

答案 0 :(得分:2)

计算引擎需要加载扫描程序在内存中发送的报告中包含的所有数据,以便能够处理它。

您可以在扫描仪的日志中看到报告的大小,以便大致了解要处理的数据量。它当然与正在分析的源代码行有关。

[INFO] Analysis report generated in 3282ms, dir size=53 MB
[INFO] Analysis reports compressed in 5909ms, zip size=28 MB
[INFO] Analysis report uploaded in 3252ms

目前无法让扫描程序发送报告的片段。您可以单独分析项目的不同模块,但这将导致在SonarQube中创建不同的项目。

增加堆大小是一个很好的解决方案,使用1GB似乎非常合理。