我正在尝试扫描一些源代码,特别是某些Java源文件,它们失败了java.lang.StackOverflowError
。我用我最喜欢的搜索引擎谷歌研究了一些,并找到了一些可能的解决方案。
然而,该解决方案没有明确说明如何a)设置 SONAR_RUNNER_OPTS 环境变量或b)如何找到导致错误的特定文件,因此可以1)排除它,2)删除它,或3)找出一些方法来缓解问题,以便扫描可以成功完成。
我的问题是:
我试图分别使用-X和-e开关调试sonar-runner中的问题。要运行分析,请使用以下命令:
sonar-runner -X -Dsonar.properties=sonar-project.properties &> debug_dump.txt
或sonar-runner -e -Dsonar.properties=sonar-project.properties &> dump.txt
。但这并没有帮助。
顺便说一句,我正在使用 sonar-runner-2.4 。
要设置环境变量SONAR_RUNNER_OPTS,我转到我的$ HOME文件夹中的.bash_profile并将此条目放入其中:SONAR_RUNNER_OPTS=" -Xss1600k"
这实际上会增加声纳 - 跑步者的堆栈大小? 此外,我是否需要重新启动操作系统,或者更改是否会在下次扫描时生效?
感谢您阅读本文。
答案 0 :(得分:1)
考虑到你在评论中的准确性,听起来你遇到了这个错误:https://jira.sonarsource.com/browse/SONARJAVA-1346
如jira票证所示,它已在3.9中修复。所以你应该升级到那个版本(因此可能会将SonarQube升级到最新的LTS版本(4.5.6如果我没有误会))。解决方法是在等待升级时停用规则S2695。