【问题标题】:SonarQube rule squid:S1200 counts java.* classes in its limit of 20?SonarQube 规则 squid:S1200 将 java.* 类计数为 20 个限制?
【发布时间】:2015-03-20 21:25:48
【问题描述】:

SonarQube 是如何规则的

squid:S1200:类不应该与太多其他类耦合 (单一职责原则)

把耦合数算到20的极限吗?

似乎它在此规则的 20 限制中计算标准 Java 包中的类,如 java.lang.*、java.text.* 和 java.util.*。所以如果我使用 Java Integer 类,我已经用完了 1 /20 这条规则的限制。

附加信息: SonarQube 版本:4.5.1

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

    回答您问题的最佳方法是直接查看此规则的源代码: https://github.com/SonarSource/sonar-java/blob/c1f15b81bcd9d643ab403aeea6e1606040f84eac/java-checks/src/main/java/org/sonar/java/checks/ClassCouplingCheck.java

    所以它计算每个声明的类型。所以确实,如果你使用 java.lang.Integer 它将被视为一种类型,因此是该规则限制的 1/20。

    好消息是您可以在质量配置文件中配置这个“20”的神奇数字。

    【讨论】:

    • 你能扩展这个答案吗?我没有在我们的质量配置文件中看到配置此号码的选项。另外,根据这个答案:stackoverflow.com/a/45480655/1093019,可以在每个项目的基础上进行,但我找不到需要设置的实际参数。
    • S1200的参数名称为“max”
    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 2014-01-17
    • 2017-01-21
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    相关资源
    最近更新 更多