SonarQube 目录排除 vNext 组件问题
SonarQube Directory Exclusions vNext Component Issue
我在 SonarQube 中排除时遇到了一些困难。我还没有真正看到这里发布的这种特殊情况,并且遵循排除相关问题中建议的其他一些解决方案并没有解决问题。任何见解将不胜感激。
我一直在与一位工程师合作,过滤 SonarQube 在构建期间从他们的项目中分析的文件。他们的解决方案是通过 vNext 构建构建的,其中 TFS 和构建服务器托管在本地。 SonarQube 也是本地托管的。该构建使用 vNext 附带的 Sonar 组件进行分析。该项目主要是 C#。
该解决方案主要由该解决方案独有的项目组成,但有一些项目引用完全属于另一个应用程序。因此,工作区映射必须从源代码管理的两个独立部分获取文件。此外,由于解决方案查找项目的方式(基于解决方案文件本身的属性),我必须以特定方式映射源代码控制文件。在高层次上,构建服务器上的工作区看起来像这样:
在声纳设置文件中,工作目录设置为构建源文件夹
工程师想从分析中排除特定目录中的代码文件。例如,他们想排除 B.Srvc 内文件夹 X 中的所有 cs 文件。因此,该目录将是 Build Source Directory/B/Source/B.Srvc/X。根据 SonarQube 网站上的排除说明,听起来我只需要做这样的事情:
sonar.exclusions=Build Source Directory/B/Source/B.Srvc/X/**/*.cs
当我这样做时,它仍然分析该文件夹中的文件。我尝试了各种其他模式组合,例如:
sonar.exclusions=Build Source Directory/B/Source/B.Srvc/X/*.cs
sonar.exclusions=**/X/**/*.cs
sonar.exclusions=B/Source/B.Srvc/X/**/*.cs
sonar.exclusions=**/B/Source/B.Srvc/X/**/*.cs
我什至尝试提供完整的目录路径(因此,C:/agent/_work/25/src/...),但这也不起作用。
像 **/* 名称 *.cs 这样的非常广泛的排除工作非常好,但如果我想开始从某些目录中排除文件,我将无法工作。
我觉得我缺少一些非常基本的东西,但我就是想不通。有时间的时候我一直在尝试解决这个问题,但我没有取得任何进展。如果有人可以提供任何见解,我将不胜感激。如果您需要任何其他信息,请告诉我。
在 SonarQube 界面中,查看您要排除的文件之一。在顶部,您将看到 SonarQube 理解的文件路径。当您通过 UI 输入排除项 而不是分析设置时,您要使用的正是这条路径。
由于排除属性的结构,它们很难在分析属性中正确设置。这就是为什么没有记录这样做的原因。
相反,您应该通过 UI 输入排除项。
我在 SonarQube 中排除时遇到了一些困难。我还没有真正看到这里发布的这种特殊情况,并且遵循排除相关问题中建议的其他一些解决方案并没有解决问题。任何见解将不胜感激。
我一直在与一位工程师合作,过滤 SonarQube 在构建期间从他们的项目中分析的文件。他们的解决方案是通过 vNext 构建构建的,其中 TFS 和构建服务器托管在本地。 SonarQube 也是本地托管的。该构建使用 vNext 附带的 Sonar 组件进行分析。该项目主要是 C#。
该解决方案主要由该解决方案独有的项目组成,但有一些项目引用完全属于另一个应用程序。因此,工作区映射必须从源代码管理的两个独立部分获取文件。此外,由于解决方案查找项目的方式(基于解决方案文件本身的属性),我必须以特定方式映射源代码控制文件。在高层次上,构建服务器上的工作区看起来像这样:
在声纳设置文件中,工作目录设置为构建源文件夹
工程师想从分析中排除特定目录中的代码文件。例如,他们想排除 B.Srvc 内文件夹 X 中的所有 cs 文件。因此,该目录将是 Build Source Directory/B/Source/B.Srvc/X。根据 SonarQube 网站上的排除说明,听起来我只需要做这样的事情:
sonar.exclusions=Build Source Directory/B/Source/B.Srvc/X/**/*.cs
当我这样做时,它仍然分析该文件夹中的文件。我尝试了各种其他模式组合,例如:
sonar.exclusions=Build Source Directory/B/Source/B.Srvc/X/*.cs
sonar.exclusions=**/X/**/*.cs
sonar.exclusions=B/Source/B.Srvc/X/**/*.cs
sonar.exclusions=**/B/Source/B.Srvc/X/**/*.cs
我什至尝试提供完整的目录路径(因此,C:/agent/_work/25/src/...),但这也不起作用。
像 **/* 名称 *.cs 这样的非常广泛的排除工作非常好,但如果我想开始从某些目录中排除文件,我将无法工作。
我觉得我缺少一些非常基本的东西,但我就是想不通。有时间的时候我一直在尝试解决这个问题,但我没有取得任何进展。如果有人可以提供任何见解,我将不胜感激。如果您需要任何其他信息,请告诉我。
在 SonarQube 界面中,查看您要排除的文件之一。在顶部,您将看到 SonarQube 理解的文件路径。当您通过 UI 输入排除项 而不是分析设置时,您要使用的正是这条路径。
由于排除属性的结构,它们很难在分析属性中正确设置。这就是为什么没有记录这样做的原因。
相反,您应该通过 UI 输入排除项。