【问题标题】:How to capture C# Issues from SonarLint CLI如何从 SonarLint CLI 捕获 C# 问题
【发布时间】:2018-02-15 19:44:37
【问题描述】:

我需要使用 SonarLint for CommandLine 工具 (sonarlint-cli-2.1-RC1) 分析 C# 源代码。

我希望捕获一组与 SonarScanner (sonar-scanner-3.0.3.778-windows & sonarqube-6.5) 相同的问题,它记录为:没有问题要显示(分析了 26 个文件)

当我使用 -u 调用 SonarLint 时,它记录为:插件 csharp 与 SonarLint 不兼容。跳过它。

但在 SonarLint for CommandLine 官网显示: 支持哪些语言? - 开箱即用,SonarLint CLI 将分析 Java、Javascript、PHP 和 Python 源文件。如果您将 SonarLint CLI 绑定到 SonarQube 服务器,则安装在服务器中的其他 SonarSource 分析器以及您的自定义规则将被下载并执行。 http://www.sonarlint.org/commandline/#FAQ

请就此提出建议。

【问题讨论】:

    标签: c# sonarlint


    【解决方案1】:

    错误信息是正确的,SonarLint CLI 不支持 SonarC# 和 SonarVB.NET。要分析 .NET 项目,您需要使用适用于 Visual Studio 的 SonarLint 或适用于 MsBuild 的 Scanner。

    .NET(C# 和 VB.NET)项目需要使用执行我们的代码分析器的 C#/VB.NET 编译器 (Roslyn) 进行编译。我们基本上连接到 Roslyn 并使用它的 API 分析代码。这就是 MsBuild 分析是 multi-step process 的原因,您可以在其中执行多个命令来分析您的项目。

    针对非 .NET 语言的分析器,如 Java、C++、Python 等,都有自己的解析器,不需要额外的步骤,并且很容易被 SonarLint CLI 支持。

    这两种方法各有利弊。要编写 Roslyn 分析器,您不必创建语言解析器,只需使用现有的基础设施(这非常好),但是,您需要执行编译器。非 .NET 分析器是独立的,没有编译器依赖性,但有些功能更难实现 - 例如分析未在一个文件中声明的类。

    【讨论】:

    • 是否可以通过使用 SonarLint for Visual Studio 或 Scanner for MsBuild for C# 源获得像 SonarLint CLI(独立运行)这样的输出报告?
    猜你喜欢
    • 2017-05-17
    • 2017-07-05
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    相关资源
    最近更新 更多