【问题标题】:Sonar -LOC & Cyclomatic complexity声纳 -LOC 和圈复杂度
【发布时间】:2013-10-04 09:52:38
【问题描述】:

Sonar 如何计算软件指标,尤其是 LOC 和圈复杂度?它是否使用任何特定工具?如果是,请同时提供姓名。

【问题讨论】:

    标签: sonarqube metrics cyclomatic-complexity lines-of-code


    【解决方案1】:

    对于每种支持的语言,“squid”插件用于解析源代码并确定一些基本指标,例如 LOC 和复杂性。复杂度的计算方式因插件而异。

    例如,以下是 JavaScript 插件的源代码文件:https://github.com/SonarCommunity/sonar-javascript/tree/master/javascript-squid/src/main/java/org/sonar/javascript/metrics 在这种情况下,插件本身使用一个非常简单的公式计算复杂度。

    这里是 C# 支持的同一组类:https://github.com/SonarCommunity/sonar-dotnet/tree/master/sonar/csharp/sonar-csharp-squid/csharp-squid/src/main/java/com/sonar/csharp/squid/metric

    但是,任何插件都可以创建指标,因此如果您想补充数据或以不同的方式显示数据,您可以编写自己的插件。

    还可以看看 .Net 插件维护者之一 Fabrice 对这个问题(关于创建新插件)的回答:SonarQube - help in creating a new language plugin

    【讨论】:

    • Java 也一样吗?如果您能在我分析 Java 项目时提供 Java 插件的链接,我将不胜感激。谢谢!
    • Java插件复杂度计算的代码可以在这里找到:github.com/SonarSource/sonar-java/blob/master/java-squid/src/…
    • @Pavneet,这回答了你的问题吗?如果是这样,请记住将答案标记为已接受。
    【解决方案2】:

    您可以浏览http://docs.codehaus.org/display/SONAR/Metric+definitions了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-13
      • 2020-04-14
      • 2012-10-29
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多