Sonarqube 忽略排除项

Sonar cube ignores exclusions

我有一个 C# 项目,其中还包括不应由 SonarCube 调查的 som 测试用户界面,(SonarCube 由 teamcity 调用)

我希望 SonarCube 忽略以下文件夹和所有内容

我已经在 sonar.exclusions 的本地声纳立方体项目的用户界面中添加了第一个文件夹,但是该文件夹中的源代码仍然存在问题。

在 SonarQubeAnalysisConfig.xml 中,该值似乎最终没问题

除了项目排除之外还有以下全局排除

对于其他项目,'sonar.global.test.exclusions' 的相同值似乎有效

所以我很纳闷,也不知道从哪里开始调查为什么会包含这些文件...难道是因为我在创建项目后更改了'exclusions',然后是sonarcube还记得之前的几期吗?

关于问题是什么或要调查什么的任何提示?

通过查看 teamcity 构建日志,我才意识到 SonarQube 应用这些排除规则假设基目录是正在分析的项目的目录,这意味着没有明确的方法来排除其中的所有文件ExamplePredictionCascadingResourceProvider 文件夹。换句话说,当 SonarQube 开始为 ExamplePredictionCascadingResourceProvider 项目分析文件时,它将基本目录设置为此文件夹,因此它无法匹配任何具有给定模式的文件以排除。

作为解决方案,您应该使用与 ExamplePredictionCascadingResourceProvider 文件夹中的所有文件名匹配的模式。假设该文件夹中的所有文件都以 "Example" 开头,将 "Example*.cs" 添加到排除规则就足够了。

在适用于所有项目的 SonarQube 服务器上设置排除规则的一个很好的用例是“**/AssemblyInfo.cs”,因为 AssemblyInfo.cs 下的所有 c# 项目都存在项目文件夹中的 Properties 子文件夹。

如果您想在项目中本地指定排除规则而不是在 SonarQube 服务器上(这对您的特定场景更有意义,因为此规则是特定于项目的)。