2017-07-28 259 views
0

我有一个MSBuild项目,使用声纳扫描仪为MSBuild进行分析。我已经将以下sonar.exclusion属性作为我的管道脚本的一部分来从分析中排除文件夹。但是我所有的排除组合都无法真正排除文件。Sonar.exclusions不适用于MSBuild的声纳扫描仪

/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文件(86) \詹金斯\工作\ MCDC_Dev \工作区\ IxMilia.Dxf

IxMilia.Dxf文件夹中包含的.cs这是在构建CS项目的有关文件。

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

+1

看看你想要在SonarQube UI中排除的文件之一。在顶部,你应该看到文件的路径_as SonarQube理解它。确认它应该匹配你的一个模式。 –

+0

感谢您的答复@ G.Ann-SonarSourceTeam。我调查了SonarQube UI,这是它的样子** mc-design-converter - > IxMilia.Dxf **。现在mc-design-converter是声纳中项目的名称。将排除模式更改为此也无济于事。 INFO:mc-design-converter/IxMilia.Dxf/** INFO:分析器工作目录包含5个.pb文件信息:200个索引的文件信息:由于包含/排除模式而被忽略的0个文件' –

回答

0

我找到了解决方案。与一般Sonar扫描仪不同,Sonar.exclusions参数不适用于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