Gradle sonarqube插件 - 如何为findbugs设置内存?

时间:2017-08-18 07:59:23

标签: gradle sonarqube gradle-plugin

我有一个30K类的项目模块。 将声纳分析从ant脚本迁移到gradle插件后,出现OOM错误,输出如下:

  13:10:36内存不足
  13:10:36总记忆:954M
  13:10:36自由记忆:119M

     

13:10:52引起:java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:超出GC开销限制
  13:10:52 at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:163)
  13:10:52 ... 109更多
  13:10:52引起:java.lang.OutOfMemoryError:超出GC开销限制
  

13:10:52

我们使用以下参数运行ant脚本" -Xmx3800m -XX:ReservedCodeCacheSize = 128m"

如何为sonarqube gradle插件设置相同的参数?

我在调用gradle

之前尝试设置以下env变量
  

GRADLE_OPTS = -Xmx3800m -XX:ReservedCodeCacheSize = 128m

它已正确应用,但是findbugs仍然失败并打印"总内存:954M"

此外,我还尝试添加以下属性以减少内存消耗,但没有任何运气

property 'sonar.skipPackageDesign', 'true'
property 'sonar.skipDesign', 'true'

Gradle版本为3.5
Sonarqube插件版本为2.5
jdk版本是8u131

2 个答案:

答案 0 :(得分:0)

检查build.gradle文件并设置maxHeapSize,如下所示,

 tasks.withType(FindBugs) {
            maxHeapSize = "1000m"
        }

您可以更改堆大小。

答案 1 :(得分:0)

我意识到问题是什么 设置GRADLE_OPTS是正确的解决方案,但我也使用了gradle守护进程,因此守护进程忽略了这些选项。 我最后通过向GRADLE_OPTS添加-Dorg.gradle.daemon = false来禁用守护进程并且它有效。