如何配置Teamcitys SonarQube Runner来分析C#文件

时间:2019-06-11 06:29:54

标签: c# sonarqube teamcity

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

能否请您仔细检查我的配置并让我知道我是否有任何遗漏?我不知道为什么它不分析任何C#文件。

Teamcity configuration

Teamcity configuration (Continued)

Project Analysis

SonarQube plugins, SonarC# is in the list

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

2 个答案:

答案 0 :(得分: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的Parameters中。

sonar.login =>您的登录名

sonar.organization =>组织

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

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

答案 1 :(得分:0)

要分析Jenkins的C#代码,请遵循Analyzing with SonarQube Scanner for MSBuild文档页面Analyzing with SonarQube Scanner for Jenkins中的说明。

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

其他几点:

  • B&属性仅在使用SonarCloud时才相关; SonarQube不使用它。
  • 自SonarQube 4.5起,sonar.organization属性已deprecated-不提供。
  • 在将SonarQube扫描仪用于MSBuild时,请勿设置sonar.language属性。扫描程序将基于生成的MSBuild项目中的文件自动设置属性。

用于MSBuild的SonarQube扫描仪自动设置sonar.sources属性的一个缺点是,所有要分析的文件必须由MSBuild项目引用,即所有XML,JavaScript,CSS等文件。 / p>

如果MSBuild项目未引用那些其他文件类型,但您想对其进行分析,则可以将对这些文件的引用添加到MSBuild项目中,或者使用其他SonarQube扫描仪之一运行单独的分析(尽管如果您运行单独的分析,则需要提供其他sonar.sources键,以使分析结果不会相互覆盖。