我有一个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文件。
对此有任何帮助表示赞赏。
答案 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