【问题标题】:How to configure Teamcitys SonarQube Runner to analyze C# files如何配置 Teamcitys SonarQube Runner 来分析 C# 文件
【发布时间】:2019-10-25 12:35:48
【问题描述】:

我正在尝试使用 Teamcity 为 C# 项目设置 SonarQube。问题是没有 C# 文件被分析。

能否请您仔细检查我的配置,如果我可能遗漏了什么,请告诉我?我完全不知道为什么它不分析任何 C# 文件。

如果您需要任何其他信息,请告诉我,我会编辑问题。

【问题讨论】:

    标签: c# sonarqube teamcity


    【解决方案1】:

    在附加参数中,尝试添加:

    -Dsonar.lanauge=c#

    如果不起作用,请尝试使用命令行运行程序而不是 TeamCity 插件:

    第 1 步:

    下载并安装SonarQube MSBuild runner from here

    第 2 步:

    使用以下命令在 TeamCity 中的项目构建步骤中创建命令行运行器,不要忘记重新排序此项目以使其在 MSBuild 之前运行

    SonarQube.Scanner.MSBuild.exe begin /k:"%sonar.project%" /d:"sonar.host.url=%sonar.host.url%" /d:"sonar.login=%sonar.login%" /d:"sonar.organization=%sonar.organization%" /v:"%build.number%"
    

    这使得 SonarQubeRunner 挂钩到 MSBuild。

    第 3 步:

    使用以下命令再次创建命令行构建步骤:

    SonarQube.Scanner.MSBuild.exe end /d:"sonar.login=%sonar.login%"
    

    这会将分析发送到 SonarCube。

    更新 1:

    如您所知,我使用了几个参数,例如sonar.login 等,不要忘记将它们添加到 TeamCity 的参数中。

    sonar.login => 您的登录名

    sonar.organization => 组织

    sonar.project => 您在 SonarQube 中的项目

    sonar.host.url => SonarCube 的主机地址 例如:https://sonarcloud.io

    【讨论】:

    • 嗨@ali-bahrami,看来从命令行运行声纳扫描仪是要走的路。 -Dsonar.lanauge=c# 对我不起作用。感谢您的时间和回答,它真的帮了我很多。
    • @Marcel-Is-Hier 您好,欢迎您。我个人更喜欢运行跑步者而不是插件。即使我对 xunit 插件 TeamCity 也有问题,但跑步者工作得很好。很高兴您的问题得到解决。
    【解决方案2】:

    要分析来自 Jenkins 的 C# 代码,请按照 Analyzing with SonarQube Scanner for Jenkins 文档页面的 Analyzing with SonarQube Scanner for MSBuild 中的说明进行操作。

    您需要使用 SonarQube Scanner for MSBuild 来分析 C#,因为分析是作为 MSBuild 步骤的一部分完成的,并且只有 SonarQube Scanner for MSBuild 正确连接到 MSBuild 步骤 - SonarQube 扫描仪的其他版本不不。

    其他几点:

    • sonar.organization 属性仅在您使用 SonarCloud 时才相关;它不与 SonarQube 一起使用。
    • 自 SonarQube 4.5 以来,sonar.language 属性一直是 deprecated - 不要提供它。
    • 在使用 SonarQube Scanner for MSBuild 时不要设置 sonar.sources 属性。扫描程序将根据正在构建的 MSBuild 项目中的文件自动设置属性。

    SonarQube Scanner for MSBuild 自动设置 sonar.sources 属性的一个缺点是,所有要分析的文件都必须由 MSBuild 项目引用,即所有 XML、JavaScript、CSS 等文件。

    如果 MSBuild 项目未引用这些其他文件类型,但您想分析它们,则可以将文件引用添加到 MSBuild 项目,或使用其他 SonarQube 扫描仪之一运行单独的分析(尽管如果您运行单独的分析,那么您将需要提供不同的sonar.project 密钥,这样分析结果就不会相互覆盖)。

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 1970-01-01
      • 2015-11-18
      • 2015-03-28
      • 2016-03-30
      • 2017-12-24
      • 2016-01-19
      • 2016-01-17
      • 2014-07-25
      相关资源
      最近更新 更多