我该在哪里设置SONAR_RUNNER_OPTS变量?

3
我正在尝试使用SonarQube分析一个相当大的项目。我遇到了一个问题,它告诉我没有足够的内存,因此我着手解决这个问题。我知道我需要增加Java可以使用的内存量,但我不明白它想让我在哪里设置变量“SONAR_RUNNER_OPTS”。它一直告诉我没有设置,所以默认为1024。但显然这还不够。
所以我问,我在哪里设置这个变量?该变量似乎存在于我的...\.sonarqube\bin\sonar-runner\bin文件夹中的sonar-runner.bat文件中,但更改它不起作用,因为MSBuild.SonarQube.Runner.exe立即删除这些文件以重新创建它们,当我执行MSBuild.SonarQube.Runner.exe end命令时。
我该怎么办?

你能提供一下内存溢出异常的堆栈跟踪吗?这样我们就可以知道分析在哪个阶段失败了,以及你使用的SonarQube服务器版本是什么。这可能有助于我们减少内存使用。 - Dinesh Bolkensteyn
@Dinesh-SonarSourceTeam 我明天上班后会和你联系。这是一个使用大量 JavaScript 和 C# 的 ASP 项目,版本为 5.4。我在另一篇帖子中看到,对于 C/C++ 项目,runner 可能会识别不属于该项目的文件,并且可能会因此增加内存使用量,但对于 C# 项目则不应如此。 - OmniOwl
@Dinesh-SonarSourceTeam 我怎样从 MSBuild.SonarQube.Runner.exe 获取日志?它的使用记录没有任何日志。http://puu.sh/ohGTQ/7953fd351a.png - OmniOwl
看起来您正在为机器/虚拟机设置SONAR_RUNNER_OPTS的值过高。 -Xms是Java虚拟机从启动时应使用的最小内存量,根据您的屏幕截图 - 它无法分配所有内存而无法启动。要么减少-Xms的值,要么增加VM /机器可用的内存。 - Dinesh Bolkensteyn
这台机器有16GB的内存,告诉我可以使用其中的15GB。它是64位的,所以我不太明白为什么会被认为太高了。 - OmniOwl
1个回答

3

只需将 SONAR_RUNNER_OPTS 设置为环境变量 (文档).


它甚至没有在Sonar源代码中提到(我在分支5.6中搜索了它)。我认为在当前的Sonar版本(大约从5.x开始),可以在sonar.properties中设置它,有各种JVM选项。 - peterh
一致,这个有效,请参见 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/#AnalyzingwithSonarQubeScanner-Troubleshooting - user5248982
1
答案中的链接已失效或无法使用。 - umer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接