【问题标题】:Unable to push the TeamCity built code into SonarQube无法将 TeamCity 内置代码推送到 SonarQube
【发布时间】:2016-08-30 02:59:05
【问题描述】:
我们已将 TeamCity 与 SonarQube 集成为我们构建过程的一部分。当我在 TeamCity 中运行声纳作业时,构建完成后,我会在 SonarQube 中看到构建版本,但没有推送代码(LOC-Lines of code)。
我们使用的是 TeamCity 9.1.3 企业版和 SonarQube 4.5.7。请参阅附件。
【问题讨论】:
标签:
.net
sonarqube
teamcity
sonar-runner
teamcity-9.0
【解决方案1】:
您的分析配置屏幕截图显示您已将 SonarQube Scanner 指向一个 .sln 文件作为项目源代码的位置。由于.sln 本身没有实际代码……那将是您的问题。分析正在运行并将结果“推送”到 SonarQube,但这些结果是空的,因为在分析期间未找到任何代码。
然后是您尝试使用 SonarQube 扫描仪分析 .NET 项目的事实。这曾经是推荐的方法,但它需要您大量进行配置,而且几乎不可能让所有的 t 交叉和 i 点缀。因此引入了用于 MSBuild 的 SonarQube Scanner 来减轻您的负担。
要将 SonarQube Scanner 用于 MSBuild,您需要运行 3 个单独的命令,而且我怀疑使用命令行方法将是最简单的(但我从未使用过 TeamCity,因此可能有一些我不知道的功能用于处理 SonarQube Scanner 以进行 MSBuild 分析)。
Here's a link to the docs,但总之你需要做的是
- 确保 SonarQube Scanner for MSBuild 可用于您的分析作业
- 运行
MSBuild.SonarQube.Runner.exe begin /k:"sonarqube_project_key" /n:"sonarqube_project_name" /v:"sonarqube_project_version"
- 正常构建
- 运行
MSBuild.SonarQube.Runner.exe end