我按照" SonarQube安装指南(针对.NET用户)和#34; (http://redirect.sonarsource.com/doc/sq-setup-guide-for-dotnet-users.html)设置SonarQube 5.1.2服务器并与TFS 2012集成。尽管该文档描述了如何将SonarQube与TFS 2013 XAML构建和TFS 2015 Build vNext集成,但我能够将其与TFS进行某种程度的集成。 2012年XAML构建。以下是TFS 2012 XAML中的一系列步骤。
MSBuild.SonarQube.Runner.exe begin ...
以调用C:\Builds\...\ClassLibrary3\ClassLibrary3.sln
(MSBuild SonarQube Runner版本1.0.1)MSBuild.SonarQube.Runner.exe end
MSBuild.SonarQube.Runner.exe
问题是即使编译了多个VS解决方案,我也只能分析一个已编译的VS解决方案。这是因为调用MSBuild
和MSBuild.SonarQube.Runner.exe
时工作目录必须相同。 MSBuild活动的工作目录设置为VS解决方案文件所在的位置,但每个VS解决方案编译后都会有所不同,但{{1}}只能指定一个工作目录。有没有办法分析多个VS解决方案?我认为没有办法改变MSBuild活动的工作目录吗? THX。
答案 0 :(得分:0)
最好的方法是在SonarQube中为每个解决方案安装一个项目,并使用Portfolio Management插件(商业)在服务器端执行所有这些项目的聚合,以提供全局。见http://www.sonarsource.com/products/plugins/governance/portfolio-management/&在Nemo上如何集成所有Apache项目,例如:http://nemo.sonarqube.org/dashboard/index?id=Apache
另一种方法是制作一个* .proj文件,其中包含要构建的所有其他项目。
另一种我不建议的方法是为您构建的每个解决方案调用MSBuild.SonarQube.Runner,然后将每个.sonarqube\out
文件夹的内容电影转换为单个文件夹(聚合它),并从该位置调用MSBuild.SonarQube.Runner结束。
另一种方法是升级到TFS 2015,并检查其MSBuild任务的行为方式。