Интеграция SonarQube в TeamCity для проектов .NET C#

У меня возникли проблемы с интеграцией SonarQube в TeamCity с MSBuild.

По сути, наша ночная сборка с использованием SonarQube разбита на 5 шагов:

1 - Инициализация SonarQube

MSBuild.SonarQube.Runner.exe begin 
/k:"tsmm-%sonar.project%" 
/n:"%sonar.project%" 
/v:"%sonar.project.version%" 
/d:sonar.host.url="%sonar.host.url%" 
/d:sonar.cs.dotcover.reportsPaths="coverage-report.html" 
/d:sonar.cs.nunit.reportsPaths="nunit-results.xml" 
/d:sonar.verbose=true 
/d:sonar.jdbc.username="%sonar.jdbc.username%" 
/d:sonar.jdbc.password="%sonar.jdbc.password%" 
/d:sonar.jdbc.url="%sonar.jdbc.url%"

2 - Реставрация маггетов

3 - MSBuild

4 - Тесты через NUnit

5 - Публикация результатов в SonarQube

MSBuild.SonarQube.Runner.exe end 
/d:sonar.scm.disabled=true
/d:sonar.jdbc.username="%sonar.jdbc.username%" 
/d:sonar.jdbc.password="%sonar.jdbc.password%"

Когда TeamCity запускает указанное выше определение сборки, все идет нормально, пока не будет достигнут шаг №. 5, как указано в журнале сборки:

Step 5/5: Publish to SonarQube (Command Line)
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
...
Caused by: org.sonar.api.utils.SonarException: SCM URL should be provided. Please review "sonar.scm.url" parameter (or the <scm> section of pom.xml if you are using Maven).

Я просмотрел разные ресурсы, включая официальный: http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild

Но мне не удалось найти какое-либо правильное объяснение, я также попытался отключить поддержку scm, как указано на этой странице: http://docs.sonarqube.org/display/SONAR/SCM+support, добавив /d:sonar.scm.disabled=true к шагу 1, но это ничего не меняет.


person Natalie Perret    schedule 23.12.2016    source источник
comment
Какие плагины SonarQube вы используете?   -  person Jeroen Heier    schedule 23.12.2016


Ответы (1)


Свойства sonar.jdbc.* предназначены только для более старых версий SonarQube, и если вы используете более новую версию, чем 5.4, вам не следует их устанавливать.

Для аутентификации в SonarQube вам необходимо использовать свойства sonar.login и sonar.password, как описано в статье ниже: http://docs.sonarqube.org/display/SCAN/From+the+Command+Line#FromtheCommandLine-Analyzeaproject

Во всех случаях, если у вас более старая версия SonarQube, я настоятельно рекомендую перейти на версию LTS (длительная поддержка): https://www.sonarqube.org/downloads/

person Val    schedule 04.01.2017