@SuppressWarnings 在 SonarQube 中损坏了吗?

@SuppressWarnings broken in SonarQube?

在 SonarQube 4.5.x LTS 中,注解 @SuppressWarnings 可用于抑制代码中的误报,但在升级到 5.4 并重新安排一些包后,这些以前被抑制的问题又出现了.为什么?

有人告诉我,SonarSource(开发 SonarQube 的公司)的建议是抑制管理方面的误报 UI,但出于某些原因,我们更愿意直接在代码中执行此操作*。 使用注释清楚地抑制了以下违规行为:

SonarQube 不再处理 @SuppressWarnings 了吗?

* Reasons include:

  • No dependency on SonarQube database state
  • Not having to rely on SonarQube being able to identify an old suppressed line of code when changed)

Update (2017-02-03): SonarQube 6.x handles moving code around and keeping false positives

您可以在该行后面使用 //NOSONAR 注释。 这并没有真正解决它,但这是 SonarCube 忽略它的一种方式。

如果您使用的是 SonarQube Java 插件的 3.14 版本,这是一个已知问题。该修复程序将与下一个传入版本 (4.0) 一起发布。关联的 JIRA 票证:SONARJAVA-1719

对于较旧版本的插件(3.13.1 及之前),@SuppressWarnings 注释应按预期工作并在使用规则键时隐藏问题。