使用SonarQube 5.2 - 只是昨天下载并在Windows下运行的“click and go”发行版。没什么好看的。
将“Java”规则包从捆绑的3.6版本升级到3.7.1后,声纳转轮在分析过程中失败。
使用'-e'选项运行时会显示一个很长的堆栈跟踪,但是没有关于文件失败的位置(行号,方法)或规则失败的详细信息。
我已经将堆栈跟踪削减到我认为有用的位:
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
...
Caused by: org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : 'C:\Users\robert.rusk\Documents\cvs\ip_probe\src\com\robert\splat\MyClass.java'
...
Caused by: java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)
...
at org.sonar.java.checks.PrintfCheck.verifyParameters(PrintfCheck.java:173)
at org.sonar.java.checks.PrintfCheck.onMethodInvocationFound(PrintfCheck.java:112)
...
答案 0 :(得分:2)
经过一些调查后,我现在相信错误的发生是因为调用String.format
时没有足够的参数(应该是2),当我注释掉这一行时,分析运行没有任何问题。
splatDateStr = String.format("%tFT%<tRZ", splatDate);
我想这是堆栈跟踪中引用的PrintfCheck
。