【问题标题】:In Sonar, how to prevent checking some rules in some packages?在 Sonar 中,如何防止检查某些包中的某些规则?
【发布时间】:2020-09-10 16:16:17
【问题描述】:

我们有一个带有公共部分的 Android/Blackberry 项目。显然,这部分是为编译到 Android 和 Blackberry 目标而编写的,因此不能使用一些较新的 Java 功能(例如,Integer.valueOf)。我想跳过一些专门针对该部分的规则。有没有办法做到这一点?

【问题讨论】:

标签: java sonarqube


【解决方案1】:

如果您将公用部分分离到自己的项目中,您可以在 Sonar 中添加一个新的 Quality Profile(您在其中停用了这些规则)并将其分配给您的公用项目。

除此之外,您还可以使用

// NOSONAR

在一行中禁止警告的注释(请参阅FAQ)。

【讨论】:

  • Sonar 2.5 引入了一个“SuppressWarning”注解,这对于关闭分析也很有用jira.codehaus.org/browse/SONAR-1760
  • 不幸的是,注释是黑莓不支持的新功能之一。
  • 至于NOSONAR评论,违规太多,无法一一评论。
  • 因此请遵循最初的建议,并在 Sonar 中创建一个新的更宽松的质量配置文件。您可以将此设置为所有项目的默认设置。
  • 我在你的最后一个链接上收到 404
【解决方案2】:

这是一个较老的问题,我认为同时有更好的解决方案:

在相关类中添加 // NOSONAR 以某种方式解决了这个问题。但我认为这是有问题的,因为在这种情况下根本不会应用任何规则。不过还有另一种方法可以解决这个问题: Ignore Issues on Multiple Criteria

示例:

我想忽略我所有 java 文件中 com.foobar.domain 包中编码规则 MagicNumbers 的所有问题。

在 Sonar 中导航到您的项目,转到 Configuration\Settings\Issues 并在 Ignore Issues on Multiple Criteria 中添加:

  • 规则键模式:com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck
  • 文件路径模式:com/foobar/domain/*.java

链接的文档中也很好地解释了这一切。

【讨论】:

  • 有没有办法通过在项目的 SonarSettings.xml 中添加类似的东西来实现这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2019-12-11
  • 1970-01-01
  • 2022-07-08
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多