добър ден днес бях настроил sonarqube с ms build runner и mercurial scm доставчик, имам следващата структура на хранилище (схематично):
<ROOT>
-.hg
-src
----prj.infrastructure
----prj.domain
----prj.application
----prj.sln
и използвах следващата команда за анализ на изпълнение:
"%env.SonarMsBuildRunner%\MSBuild.SonarQube.Runner" begin /n:prj /k:prj /v:1.0
"%env.MsBuildLocation%\msbuild" src\prj.sln /p:Configuration=Debug
"%env.SonarMsBuildRunner%\msbuild.sonarqube.runner" end
всички анализи работят добре, но scm не работи (виждам съобщение като „Липсваща информация за вината за следните файлове:“)
когато видя генериран sonar-project.properties, видях, че проблемът е в projectBaseDir - той генерира за всеки проект в решението отделно
опитвам се да посоча в командния ред като /d:sonar.projectBaseDir=... но няма промени - напълно се игнорира
така че въпросът ми е - мога ли да използвам ms build runner и scm доставчик заедно с моята структура на хранилище?
АКТУАЛИЗАЦИЯ 1 Добавих многословен флаг към моя скрипт.. сега изпълнявам анализ със следващата команда:
MSBuild.SonarQube.Runner begin /n:projectName /k:projectKey /v:1.0 /d:sonar.scm.enabled=true /d:sonar.scm.provider=hg /d:sonar.projectBaseDir=d:\work\project1 /d:sonar.verbose=true
msbuild project1\src\solution.sln /p:Configuration=Debug
msbuild.sonarqube.runner end
в дневника мога да видя тези съобщения:
[14:18:20] : [Step 4/4] 14:18:20.403 DEBUG: Working directory: D:\work\project1\src\
[14:18:20] : [Step 4/4] 14:18:20.416 DEBUG: Executing: hg blame -w -v --user --date --changeset API/AssignmentsController.cs
[14:18:20] : [Step 4/4] 14:18:20.423 DEBUG: Executing: hg blame -w -v --user --date --changeset API/Commands/ImportCommand.cs
[14:18:20] : [Step 4/4] 14:18:20.424 DEBUG: Executing: hg blame -w -v --user --date --changeset API/Dto/Assignment.cs
[14:18:20] : [Step 4/4] 14:18:20.600 DEBUG: The mercurial blame command [hg blame -w -v --user --date --changeset API/AssignmentsController.cs] failed: abort: no repository found in 'D:\work\project1\src\' (.hg not found)!
[14:18:20] : [Step 4/4]
и това е правилно - в папка d:\work\project1\src няма директория .hg, защото е в d:\work\project1
АКТУАЛИЗАЦИЯ2
добре, най-накрая открих грешката си... в папката на компилационната машина .hg е пропусната по някои причини...