【问题标题】:Sonar.exclusions not working with Sonar scanner for MSBuildSonar.exclusions 不适用于 MSBuild 的声纳扫描仪
【发布时间】:2018-01-04 07:49:33
【问题描述】:

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

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

我尝试在分析范围下从声纳 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 文件。

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

【问题讨论】:

  • 查看您想在 SonarQube UI 中排除的文件之一。在顶部,您应该会看到文件的路径SonarQube 理解它。验证它是否应该与您的模式之一匹配。
  • 感谢您的回复@G.Ann-SonarSourceTeam。我查看了 SonarQube UI,这就是它的外观 mc-design-converter --> IxMilia.Dxf 。现在 mc-design-converter 是声纳中项目的名称。将排除模式更改为此也无济于事。 INFO: Excluded sources: INFO: mc-design-converter/IxMilia.Dxf/** INFO: Analyzer working directory contains 5 .pb file(s) INFO: 200 files indexed INFO: 0 files ignored because of inclusion/exclusion patterns

标签: jenkins msbuild sonarqube sonarqube-scan


【解决方案1】:

我已经找到了解决方案。与一般的 Sonar Scanner 不同,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

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 2017-12-25
    • 2018-12-27
    • 2017-08-19
    • 2018-10-10
    • 2017-08-28
    • 2018-05-12
    • 2017-04-27
    • 2016-12-01
    相关资源
    最近更新 更多