SONAR实现是否将附带的类视为公共类的一部分 - metrics

时间:2017-02-03 16:17:10

标签: java sonarqube

简介

我正在考虑如何在不进行重大重构的情况下解决特定的关键/主要问题,并打破与之前版本(差异等)的比较。

我知道我可以将我的类拆分成同一个文件中的多个类,而不会破坏比较。我已经这样做了。 (今晚会提供一个例子)。

然而,问题是:在运行算法时,SONAR是否考虑在同一个.java文件中附带类?它是否考虑嵌套类?

更重要的是,它将它们视为与文件名同名的关键“公共类”的一部分。在生成警告时,各种指标的计算是否将其视为public class

实施例

如何重构代码,因此diff不会受到严重破坏

我在if, else if的很长链中有以下代码:

}else if ("cdbStreet".equals(paramKey)) {

并将其转换为:

}else{
        setSearchDataByRequestParametersPart2(searchData, ...);
      }
    }
    return queryString.toString();
  }

  private static void setSearchDataByRequestParametersPart2(SearchRequestData searchData, ...) {
    if ("cdbStreet".equals(paramKey)) {

1 个答案:

答案 0 :(得分:1)

Sonar正在对嵌套(内部)类进行代码分析。它适用于我的商业项目(我无法分享示例)。报告内部静态和非静态类的违规。

有一些特定于内部类的规则 https://sonarqube.com/coding_rules#q=inner|languages=java

有关可用示例,请参阅 https://sonarqube.com/component_measures/metric/lines/list?id=com.icegreen%3Agreenmail-parent

从第358行开始,您将分析内部类FetchCommandParser。针对该类中的代码报告了一些警告。

在内部,声纳插件使用源代码和字节码。默认情况下,您提交所有代码进行分析(如果您愿意,可以配置排除项)。

相关问题