如何为 MSBuild SonarQube Runner 配置 SCM 支持?

How to configure SCM support for MSBuild SonarQube Runner?

我将 SonarQube 5.1 与 MSBuild SonarQube Runner 一起用于我们的质量检查。尽管我已经安装了 TFVC 插件,但目前尚不支持 SCM。我从分析过程中得到以下日志

07:18:22  07:18:22.352 INFO  - Sensor SCM Sensor
07:18:22  07:18:22.352 INFO  - No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it.
07:18:22  07:18:22.352 INFO  - Sensor SCM Sensor (done) | time=0ms

然后我在位于 \sonarqube-5.1.2\conf 文件夹中的通用 "sonar.properites" 文件中设置以下属性(我可能做错了)

sonar.scm.enabled=true
sonar.scm.provider=tfvc
sonar.tfvc.username=myTFSusername
sonar.tfvc.password.secured=myTFSpassword

我想这些属性应该在 "sonar-project.properties" 文件中设置并在分析时通过(如果我错了请纠正我)。但问题是因为我使用的是 MSBuild SonarQube Runner,不再使用 sonar-project.properties 文件并且在分析时传递了项目属性。如果是这样,我应该如何传递它们?

我搜索了很多,但找不到合适的解决方案,如果有人能提供帮助,我将非常高兴。

提前致谢。

其他属性在其 begin 阶段使用以下语法传递给 MSBuild SonarQube Runner:/d:key=value.

所以,你可以全部通过:

MSBuild.SonarQube.Runner begin /k:... /n:... /v:... /d:sonar.scm.enabled=true /d:sonar.scm.provider=tfvc /d:sonar.tfvc.username=... /d:sonar.tfvc.password.secured=....

如果 "project base dir" 级别有 $tf,SCM 的自动检测将起作用。该目录被计算为所有 *.csproj 文件共有的第一个祖先路径。您可以在 end 阶段生成的文件后面看到它的值:.sonarqube\out\sonar-project.properties。在文件末尾附近查找 sonar.projectBaseDir 属性 值。有关详细信息,请参阅 https://jira.sonarsource.com/browse/SONARMSBRU-8