SonarQube分析在升级到3.7.1规则后失败

SonarQube分析在升级到3.7.1规则后失败,sonarqube,Sonarqube,使用SonarQube 5.2-只需昨天下载并在Windows下运行的“点击即可”发行版。没什么特别的 将“Java”规则包从捆绑的3.6版本升级到3.7.1后,sonar runner在分析过程中失败 当使用“-e”选项运行时,会显示一个很长的stacktrace,但是没有关于文件中失败的位置(行号、方法)或哪个规则失败的详细信息 我已将堆栈跟踪缩减到我认为有用的部分: ERROR: Error during Sonar runner execution org.sonar.runner.im

使用SonarQube 5.2-只需昨天下载并在Windows下运行的“点击即可”发行版。没什么特别的

将“Java”规则包从捆绑的3.6版本升级到3.7.1后,sonar runner在分析过程中失败

当使用“-e”选项运行时,会显示一个很长的stacktrace,但是没有关于文件中失败的位置(行号、方法)或哪个规则失败的详细信息

我已将堆栈跟踪缩减到我认为有用的部分:

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)
...

经过一些调查后,我现在认为出现错误是因为调用
String.format
时没有足够的参数(应该是2),当我注释掉这一行时,分析就可以正常运行了

splatDateStr = String.format("%tFT%<tRZ", splatDate);

splatDateStr=String.format(“%tFT%”您遇到以下问题:

当您有一个带有
%Thank:)的参数时,就会发生这种情况我认为,如果提供更多有关故障发生位置的上下文,这种类型的故障将更容易管理。是否有一个票证打开,以便在发生故障时添加此类信息?目前只有文件名…这些故障是意外问题,因此在分析文件的过程中,很难准确指出具体的位置问题发生了。是的,这是我将在“可用性”标题下描述为“新特性”的东西:-)问题是,它不是在所有情况下都可行。而且太大的努力最终会让代码变得一团糟,从而获得很小的附加值。(不是说可用性没有价值,而是这样一个特性的投资回报率真的很低)。另外值得注意的是,
@SuppressWarnings(“squid:S2275”)
没有禁止执行此错误规则。查看String.format的文档,我发现参数的数量是正确的。正如@benzonico所说,这与
%的方式有关