我正在尝试在具有大约80,000个类的Maven项目上运行sonar-scanner
。
(我知道:正确的方法是使用mvn sonar:sonar
,但最终我可能遇到一个错误,而对于其他所有指标则为0,这可能是因为它是一个有问题的遗留系统,其中残留了蚂蚁构建文件)
暂时不考虑是否或如何重构/重做该项目的问题,我想了解一下是否可以按原样使用Sonar。
这是sonar-scanner
处理11,000个类后出现的错误:
A stack overflow occurred while analyzing file: ....
....
Error during SonarQube Scanner execution
java.lang.StackOverflowError
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
at org.sonar.java.cfg.CFGLoop.returnsToStart(CFGLoop.java:100)
at org.sonar.java.cfg.CFGLoop.collectBlocks(CFGLoop.java:87)
etc. many many more times.
在sonar-project.properties
文件中,我有:
sonar.sources=.
sonar.binaries=./<path>,./<another path>, etc.
答案 0 :(得分:0)
我正在回答自己的问题。
根据我的评论,我遵循使用mvn
来实现sonar
目标的更好做法。
我需要研究的问题,或者可能是另一个问题,是为什么分析运行如此缓慢-每个文件大约需要一分钟时间。