Sonar 在旧代码中显示新的违规行为

Sonar is showing new violations in old code

我们正在使用 Sonar Qube 6.7.3 和 sonar-java-plugin 5.3

我们最近对声纳配置进行了以下更改

  1. 启用新规则
  2. 更改配置以包含字节码(从 'clean sonar:sonar' 更改为 'clean package sonar:sonar')

我们正在使用 sonar svn 插件并为其提供有效凭据。

我知道向 Sonar 提供字节码将有助于它识别更多问题,但是,我希望 Sonar 根据 svn 代码提交日期和上次分析日期标记新问题,但它不是.

请告诉我为什么将旧代码中的问题标记为新代码?

Sonar Sanner 始终扫描整个代码库。如果有人确定某些代码结构错误或危险(规则集已更改),则 SonarQube 必须通知该代码的所有出现。为什么?让我们考虑以下示例:

插件升级后,SonarQube 提供了一个非常重要的新安全规则,禁止使用危险的密码算法。现在是问题:

  • 是否只有在新代码中才危险?
  • 总是很危险吗?

当然,这总是危险的。 SonarQube 不会强迫您修复所有问题(质量门的使用是可选的)。它的主要目标是让你知道整个代码库中存在多少问题(代码smells/bugs/vulnerabilities)。