在Sonar中,如何防止检查某些包中的某些规则?

2022-09-02 12:07:04

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


答案 1

如果将公共部件分离到自己的项目中,则可以在Sonar中添加新的质量配置文件(您可以在其中停用这些规则)并将其分配给公共项目。

除此之外,您还可以使用

// NOSONAR

注释以在单行上抑制警告(请参阅常见问题解答)。


答案 2

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

将 // NOSONAR 添加到相关类中可以以某种方式解决问题。但我认为这是有问题的,因为在这种情况下根本不适用任何规则。还有另一种方法可以解决这个问题:忽略多个标准上的问题

例:

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

在 Sonar 中导航到您的项目,转到“配置\设置\问题”,然后在“忽略多个条件上的问题”中添加:

  • Rule Key Pattern: com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck
  • 文件路径模式:com/foobar/domain/*.java

Sonar ignore issues

这在链接的文档中也得到了很好的解释。


推荐