我正在嘗試掃描一些源代碼,尤其是一些源代碼文件,其失敗的原因是java.lang.StackOverflowError
。我用我最喜歡的搜索引擎Google來研究這個問題,並找到了一些可能的解決方案。SonarQube因java.lang.StackOverflowError失敗 - 如何確定導致錯誤的特定文件
該解決方案但並未明確如何將)設置SONAR_RUNNER_OPTS環境變量或b)如何找到導致錯誤的特定文件地址第一,所以人們可以1)排除它,2)刪除它,或3)找出一些方法來減輕問題,使掃描可以成功完成。
我的問題是:
- 如何找出哪些特定的文件引起的錯誤,的StackOverflowError在這種情況下
- 如何設置「SONAR_RUNNER_OPTS」變量在Linux操作系統 上
我試圖用-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我去的.bash_profile在我的$ HOME文件夾,並把它添加此項:SONAR_RUNNER_OPTS=" -Xss1600k"
請問這實際上增加堆棧大小爲聲納亞軍? 另外,我是否需要重新啓動操作系統,或者更改是否會在下次掃描時生效?
感謝您閱讀本文。
你能確定你正在使用哪個版本的sonarqube?還有哪個版本的sonar-java插件安裝在你的服務器上?最後你可以分享導致stackoverflow錯誤的整個堆棧跟蹤?這確實有助於查明問題。 – benzonico
*「我需要重新啓動操作系統還是更改會在下次掃描時生效」 - 只需執行一個操作。 .bash_profile'來執行它。 –
@GergelyBacso你是什麼意思? 'sonar-runner'會不會從配置文件中獲取環境變量?另外,你正在建議'..bash_profile'命令?我不認爲隱藏文件.bash_profile是一個可執行文件無論如何...也許我完全無知的東西,所以請幫助我理解。 :D – user3870315