无法将TeamCity构建的代码推送到SonarQube

时间:2016-05-04 15:09:43

标签: .net sonarqube teamcity sonar-runner teamcity-9.0

我们将TeamCity与SonarQube集成在一起,作为构建过程的一部分。当我在TeamCity中运行声纳作业时,在构建完成后,我在SonarQube中看到了构建版本,但代码(LOC-Lines of code)没有被推送。

我们正在使用TeamCity 9.1.3企业版和SonarQube 4.5.7。请参阅附件以供参考。

Analysis configuration in TeamCity

Resulting metrics

1 个答案:

答案 0 :(得分:1)

您的分析配置屏幕截图显示您已将SonarQube扫描仪指向.sln文件,作为项目源代码的位置。由于.sln本身没有实际代码......这将是你的问题。分析正在运行并将结果“推送”到SonarQube中,但这些结果是空的,因为在分析过程中没有找到代码。

然后,您正在尝试使用SonarQube扫描仪分析.NET项目。这曾经是推荐的做法,但它需要很多的配置,而且几乎不可能让所有的交叉和我点缀。因此,我们推出了用于MSBuild的SonarQube扫描仪,以减轻您的负担。

要使用SonarQube扫描仪进行MSBuild,您需要运行3个单独的命令,我怀疑使用命令行方法将是最简单的(但我从未使用过TeamCity,因此可能会有一些我不知道的功能处理SonarQube扫描仪进行MSBuild分析)。

Here's a link to the docs,但简而言之,您需要做的是

  1. 确保用于MSBuild的SonarQube扫描仪可用于您的分析工作
  2. 运行MSBuild.SonarQube.Runner.exe begin /k:"sonarqube_project_key" /n:"sonarqube_project_name" /v:"sonarqube_project_version"
  3. 做正常的构建
  4. 运行MSBuild.SonarQube.Runner.exe end