我们有一个包含5个项目的解决方案。
运行MSBuild运行程序后,我们的声纳只包含一个项目的分析,而不是完整的解决方案。
执行:
cd K:\sonarRoot
D:\BuildTools\MSBSonarQubeRunner-1.0.2\MSBuild.SonarQube.Runner.exe begin /k:"solutionKey" /n:"solutionName" /v:"solutionVersion" /d:sonar.resharper.cs.reportPath="K:\<pathToXml>\resharper.xml" /d:sonar.resharper.solutionFile="K:\<pathToSolution>\solution.sln"
C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe K:\<pathToSolution>\solution.sln /t:rebuild /p:Configuration=Release /p:TargetFrameworkVersion="v4.5.2" /verbosity:n /flp1:logfile=D:\ModuleBuild\Workspace\builderrors.txt;errorsonly;append=true
D:\BuildTools\ReSharperCommandLineTools\inspectcode.exe "K:\<pathToSolution>\solution.sln" /o="K:\<pathToXml>\resharper.xml"
D:\BuildTools\MSBSonarQubeRunner-1.0.2\MSBuild.SonarQube.Runner.exe end > D:\ModuleBuild\Workspace\sonar.out 2> D:\ModuleBuild\Workspace\sonar.err
这一切都运行正常,只有一个解决方案出现在声纳中... 对于解决方案中不在项目中的每个文件,我们在运行器输出中得到一行,如下所示:
12:14:43.513 INFO - 在第262行跳过ReSharper问题 文件 &#34; {pathToSource} \ ChangeListHelper.cs&#34;是 不在SonarQube。
以某种方式,从MSBuild运行器生成的sonar-project.properties包含项目的sonar.projectname而不是解决方案。并且sonar.projectBasedir也设置为该项目。
我们应该如何修复它,以便分析完整的解决方案?
答案 0 :(得分:0)
您的<pathToSolution>\Solution.sln
可能包含*\test\*
吗?默认配置忽略该正则表达式的项目。
如果,让我们说,除了那个项目之外的所有项目都在&#39;
K:\myWork\thisSolution\test\ProjectA
和ProjectB
以及ProjectC
最后一个是
K:\myWork\thisSolution\app\ProjectD
ProjectD
是唯一被分析的人,那就是原因。
请参阅 MSBuild SonarQube runner in command line关于此主题的其他SO讨论。