【问题标题】:How to ignore //NOSONAR during scan?扫描期间如何忽略//NOSONAR?
【发布时间】:2016-09-21 01:05:58
【问题描述】:

我必须对我的项目中被 //NOSONAR 抑制的 Sonar 问题进行审计。

有没有办法进行扫描以忽略指令,以便我可以看到哪些违规行为已被禁止?

【问题讨论】:

  • 我认为它是不可配置的。您可以使用命令行工具或 IDE 将 NOSONAR 全局替换为 SONAR(或其他),然后运行您的构建,然后丢弃替换更改
  • 可惜不可配置。应该有一条规则“不必要地使用//NOSONAR”,如果没有//NOSONAR,这个地方就没有问题,就会引发问题——没有人会删除//NOSONAR,只是为了测试前一个误报是否是在规则集或插件更新后消失了。
  • @outofmind 很好,但即使它是可配置的,也很难识别不必要的使用。需要单独的规则来标记您提到的不必要的使用。
  • @MiserableVariable 我猜//NOSONAR 工作,如果它发现一个问题,当有//NOSONAR 评论时它会被忽略,所以该规则应该很容易实现 - 但也许我错了 -猜想我们应该把这种请求放在谷歌群组或类似的地方更显眼的地方。而且我很确定,与其他规则不同,这将是一个必须由扫描仪实现的规则,而不是在插件中。

标签: java sonarqube


【解决方案1】:

大多数 SonarQube 语言插件都提供了一个内置规则来跟踪 NOSONAR 的使用情况:

“NOSONAR”不应用于关闭问题 - 当使用 NOSONAR 时,此规则会引发问题。

(其他语言请参阅Java examplelist of equivalent rule

在相关的质量配置文件中启用此规则将使您能够持续跟踪 NOSONAR 的使用情况(并可能在您的质量门中考虑)。

至于获取有关被抑制的实际问题的详细信息,没有办法忽略一个精确地忽略问题的指令。如@987654323 @ 建议您最好在删除 NOSONAR 标志的情况下运行临时分析,并查看引发了哪些新问题(避免在现有 SonarQube 项目上这样做,以免对其历史添加噪音)。

【讨论】:

  • 谢谢。没有inherent 理由来忽略问题的指令本身不能被忽略,但这似乎是当前状态。我打算使用不同的分支名称来保存历史记录。
猜你喜欢
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2018-07-01
  • 2013-04-23
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多