当前位置: 首页 > 知识库问答 >
问题:

Sonarqube:Squid规则自定义/抑制

乔凯康
2023-03-14

我花了一天的时间将所有PMD和Checkstyle规则迁移到新的Squid规则,因为PMD/Checkstyle规则被标记为不推荐使用。

规则:BadConstantName_S00115_Check/S00115

我们所有的枚举都是用camelCase而不是CONSTANT_NAME实现的,例如:

public enum Classification {
    PoorMinus(1),
    Poor(2),
    PoorPlus(3),
    OrdinaryMinus(4),
    Ordinary(5),

比:

public enum Classification {
    POOR_MINUS(1),
    POOR(2),
    POOR_PLUS(3),

规则:MethodCyclomatic复杂性

迁移后,该规则报告所有equals和hashcode方法的复杂性。(对于这些方法,不推荐使用的CS规则很容易取消)

度量由Eclipse/Intellij自动生成的方法的复杂性是没有意义的(至少对我们来说是这样)。重要的是度量代码“业务逻辑”部分的复杂性

我想确保javadoc只用于接口(包括类和方法)和类级别的类(而不是方法/字段)。像现在这样,这是不可能的。同样,我要禁用检查方法和字段

有没有人知道如何实现这种抑制?我已经看过SonarQube的设置/排除,但是它似乎很难甚至不可能实现这一点与排除设置。

所以我们真正需要的是能够调整规则来抑制对某些类型和方法的检查,使规则更加灵活。理想情况下,这应该作为一个通用特性来实现,在有意义的情况下,它可以很容易地应用于规则。

我可以在哪里提交这个功能请求?

我已经查看了Github的源代码,因此目前正在研究以编程方式修复这些问题。然而,这并不是一个可行的长期解决办法。

共有1个答案

萧琛
2023-03-14

Dag是正确的,这些规则没有配置。经过SonarSource的内部讨论,配置不会被添加

对于您的情况,最好的方法是用Java实现自定义规则,如本文所述

 类似资料:
  • 授人以鱼,不如授人以渔。Dism++的能力是有限的,无法覆盖的所有用户的需求。因此给程序添加了自定义规则功能,方便高级用户打造自己的专属工具。 创建一个空白的自定义规则文件 我们只需要在Config目录新建一个 Custom*.xml 这样形式的xml文件即可(*表示任何字符串,比如Custom1.xml或者Custom我爱我的家.xml,另外文件以UTF8或者Unicode编码保存)。初始文件内

  • 自定义中间有突起的UITabBar,demo中高仿了gogobot app底部不规则的TabBar。 [Code4App.com]

  • 部署自定义规则(如https://github.com/sonarsource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/useLessimportcheck.java)后,启动Sonarqube4.2时,在sonar启动期间引发以下异常: 上面提到的类应该在sslr-core-1.19.2.jar

  • 我使用checkstyle API编写了几个自定义checkstyle规则。它们使用Maven运行良好(在我将新项目作为依赖项添加到checkstyle插件之后)。 null

  • 我们在中基于BaseTreeVisitor实现了一个自定义规则https://github.com/SonarSource/sonar-java/tree/master/java-checks/src/main/java/org/sonar/java/checks如中所述http://docs.sonarqube.org/display/SONAR/Extending编码规则。我们能够部署它,它看

  • 我正在使用Sonarqube5.4来分析我自己的C#代码,分析工作与我预期的一样。现在我已经编写了一些自定义规则,一个使用StyleCop,另一个使用FxCop在我的代码上运行,但我没有找到如何在Sonarqube中导入自定义规则。我强调我使用Sonarqube5.4和C#插件5.1。在我的安装中,文件夹“规则”不存在。相反,我可以找到: 有人能帮我在SonarQube安装中导入我的自定义规则吗?