Sonar.exclusions无法与Sonar扫描仪一起使用MSBuild

时间:2017-07-28 09:45:53

标签: jenkins msbuild sonarqube sonarqube-scan

我有一个MSBuild项目,使用 Sonar Scanner for MSBuild 进行分析。我已将以下sonar.exclusion属性作为管道脚本的一部分传递,以从分析中排除文件夹。但是我的所有排除组合都无法实际排除文件。

/d:sonar.exclusions=\"IxMilia.Dxf/**,IxMilia.Dxf/*,**/IxMilia.Dxf,**/IxMilia.Dxf/**,**/IxMilia.Dxf/**/*,**/IxMilia.Dxf/*.cs,IxMilia.Dxf/*.cs\"

我尝试从分析范围下的Sonar UI传递相同内容,但这也无济于事。

声纳输出如下:

INFO: -------------  Scan IxMilia.Dxf
INFO: Initializer GenericCoverageSensor
INFO: Initializer GenericCoverageSensor (done) | time=0ms
INFO: Base dir: C:\Program Files (x86)\Jenkins\jobs\MCDC_Dev\workspace\IxMilia.Dxf

INFO: Source encoding: UTF-8, default locale: en_IN
INFO: Index files
INFO: Excluded sources: 
INFO:   IxMilia.Dxf/**
INFO:   IxMilia.Dxf/*
INFO:   **/IxMilia.Dxf
INFO:   **/IxMilia.Dxf/**
INFO:   **/IxMilia.Dxf/**/*
INFO:   **/IxMilia.Dxf/*.cs
INFO:   IxMilia.Dxf/*.cs
INFO: Analyzer working directory contains 5 .pb file(s)
INFO: 200 files indexed
INFO: 0 files ignored because of inclusion/exclusion patterns

从输出日志中可以看出,我想要排除工作区根目录下的文件夹 C:\ Program Files(x86)\ Jenkins \ jobs \ MCDC_Dev \ workspace \ IxMilia.Dxf < /强>

IxMilia.Dxf 文件夹包含在构建cs项目时引用的.cs文件。

对此有任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。与通用声纳扫描仪不同,Sonar.exclusions参数不能直接用于 Sonar Scanner for MSBuild 。对于MSBuild项目,我们需要在我们要排除的.csproj中添加排除项。 将以下代码添加到.csproj文件将导致根据配置的模式排除文件。

<Target Name="BeforeBuild">
<ItemGroup>
      <SonarQubeSetting Include="sonar.exclusions">
          <Value>/**</Value>
      </SonarQubeSetting>
</ItemGroup>
</Target>
</Project>

在上述代码中,项目文件夹下的所有文件都被排除,因为/**作为值传递。您可以参考此主题以获取更多详细信息:http://www.it1me.com/it-answers?id=35656157&ttl=SonarQube+with+C%23+plugin+with+MSBuild+Runner+does+not+take+exclusions