Gradle sonarqube 插件 - 如何为 findbugs 设置内存?
Gradle sonarqube plugin - how to set memory for findbugs?
我有一个 30K 的项目模块 类。
将声纳分析从 ant 脚本迁移到 gradle 插件后,出现 OOM 错误,输出如下:
13:10:36 Out of memory
13:10:36 Total memory: 954M
13:10:36 free memory: 119M
13:10:52 Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
13:10:52 at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:163)
13:10:52 ... 109 more
13:10:52 Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
13:10:52 at
我们 运行 ant 脚本具有以下参数“-Xmx3800m -XX:ReservedCodeCacheSize=128m”
如何为 sonarqube gradle 插件设置相同的参数?
我尝试在调用 gradle
之前设置以下环境变量
GRADLE_OPTS=-Xmx3800m -XX:ReservedCodeCacheSize=128m
应用正确,但 findbugs 仍然失败并打印“总内存:954M”
我也试过添加以下属性来减少内存消耗,但没有成功
property 'sonar.skipPackageDesign', 'true'
property 'sonar.skipDesign', 'true'
Gradle版本是3.5
Sonarqube 插件版本为 2.5
jdk 版本为 8u131
检查 build.gradle 文件并如下设置 maxHeapSize,
tasks.withType(FindBugs) {
maxHeapSize = "1000m"
}
您可以更改堆大小。
我意识到问题出在哪里了。
设置 GRADLE_OPTS 是正确的解决方案,但是我还使用了 gradle 守护程序,因此守护程序忽略了这些选项。
我最终通过将 -Dorg.gradle.daemon=false 添加到 GRADLE_OPTS 来禁用守护进程并且它起作用了。
我有一个 30K 的项目模块 类。 将声纳分析从 ant 脚本迁移到 gradle 插件后,出现 OOM 错误,输出如下:
13:10:36 Out of memory
13:10:36 Total memory: 954M
13:10:36 free memory: 119M13:10:52 Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
13:10:52 at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:163)
13:10:52 ... 109 more
13:10:52 Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
13:10:52 at
我们 运行 ant 脚本具有以下参数“-Xmx3800m -XX:ReservedCodeCacheSize=128m”
如何为 sonarqube gradle 插件设置相同的参数?
我尝试在调用 gradle
之前设置以下环境变量GRADLE_OPTS=-Xmx3800m -XX:ReservedCodeCacheSize=128m
应用正确,但 findbugs 仍然失败并打印“总内存:954M”
我也试过添加以下属性来减少内存消耗,但没有成功
property 'sonar.skipPackageDesign', 'true'
property 'sonar.skipDesign', 'true'
Gradle版本是3.5
Sonarqube 插件版本为 2.5
jdk 版本为 8u131
检查 build.gradle 文件并如下设置 maxHeapSize,
tasks.withType(FindBugs) {
maxHeapSize = "1000m"
}
您可以更改堆大小。
我意识到问题出在哪里了。
设置 GRADLE_OPTS 是正确的解决方案,但是我还使用了 gradle 守护程序,因此守护程序忽略了这些选项。
我最终通过将 -Dorg.gradle.daemon=false 添加到 GRADLE_OPTS 来禁用守护进程并且它起作用了。