情境: 我正在将我们当前的VS解决方案分析设置从使用声纳转换器转移到使用MSBuild转轮。但是我遇到了一个相当重要的问题。
在旧设置中,我们使用sonar.visualstudio.skippedProjectPattern
文件指定了项目名称,密钥,最重要的是一长串跳过的项目(sonar-project.properties
)。
这是因为[警告:丑陋的传统不良编码实践警报]我们有六个解决方案可以构建数十个和几十个项目,所有这些都来自同一个git仓库。很多项目在多个解决方案中都很常见,我们不希望它们被多次分析。因此,每个解决方案都有一组“拥有”的项目,并作为其中的一部分进行分析。因此,每个其他解决方案的sonar-project.properies
文件指定要忽略这些项目。
问题:在新的MSBuild Runner方法中,似乎没有 MS解决方案级别(也称为SonarQube项目级别)配置文件或机制除了将命令行上的参数传递给MSBuild运行器的“开始”阶段。其中一个具有全局配置文件或MSBuild *.*proj
文件(即 MS项目级配置文件)。后者显然是不可能的,因为项目是否被排除在分析之外是基于正在分析哪种解决方案。
如上所述,可以想象我们可以在命令行中传递所有这些,但这是次优的。我们的构建是通过尽可能通用的脚本完成的。在sonar-project.properities
文件中进行配置对于保持这种方式是一个很大的帮助,我们希望我们在这里遗漏了一些让我们继续使用该文件或类似文件的东西。我们呢?
答案 0 :(得分:1)
v1.0 MSBuild SonarQube Runner支持/s:
命令行参数,允许您指定要使用的全局设置文件。设置文件可以包含您之前放入sonar-project.properties
文件中的任何其他全局设置。
如果您未指定全局设置文件,MSBuild Runner将在与跑步者可执行文件相同的位置查找默认的全局设置文件。
有关详细信息,请参阅文档仓库:https://github.com/SonarSource/sonar-.net-documentation/blob/master/doc/appendix-2.md
答案 1 :(得分:1)
目前,MSBuild SonarQube Runner 1.0版中没有等效的sonar-project.properties
文件。我已经为项目的积压添加了一张新票,考虑在即将发布的版本中添加此功能:http://jira.sonarsource.com/browse/SONARMSBRU-124
答案 2 :(得分:0)
现在可以通过每个 .csproj 文件中的 ItemGroups 添加属性,如下所示:
<ItemGroup>
<SonarQubeSetting Include="sonar.cpd.exclusions">
<Value>Models/**/*.cs</Value>
</SonarQubeSetting>
</ItemGroup>