gpt4 book ai didi

c# - 带 C# 插件和 MSBuild Runner 的 SonarQube 不排除

转载 作者:太空狗 更新时间:2023-10-29 21:08:14 25 4
gpt4 key购买 nike

目前我有一个带有 C# 插件和 MSBuild 运行器的 SonarQube 5.1.2 实例,用于分析 1.200.000 LOC 项目。我打算减少分析的类,我创建了一个 sonar.properties 文件,其中包含

sonar.exclusions=**/Databases/**/*.*

但在从分析中读取日志后,对数据库文件夹中的文件进行了分析。按照 Eric Starr 中的说明进行操作,我在运行者的调用中设置了这个简单的排除规则:

"C:\sonarqube-5.1.2\bin\MSBuild.SonarQube.Runner.exe" begin /k:MyProject /n:MyProject /v:2 /d:sonar.exclusions="file:C:\codesource\Databases/**/*.*" /d:sonar.scm.provider=tfvc /d:sonar.tfvc.username=*************  /d:sonar.tfvc.password.secured={aes}*************************** "/d:sonar.cs.vscoveragexml.reportsPaths=C:\codesource\CodeCoverage\Results.coveragexml"

我发现 runner 创建了一个 sonar-project.properties 文件,它包含很多位于数据库文件夹中的文件:

BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectName=myDatabase
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectBaseDir=BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectName=myDatabase
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectBaseDir=C:\\codesource\\Databases\\myDatabase
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.sources=\
C:\\codesource\\Databases\\myDatabase\\Scripts\\PreDeployment\\PATCH_20150527_01.sql,\
C:\\codesource\\Databases\\myDatabase\\Scripts\\PreDeployment\\ROCOMMON.DBVERSION.sql,\
,\.....

据我了解,数据库文件夹中应该没有文件。我错了吗?

最佳答案

您正在使用 SonarQube Scanner for MSBuild这与常规 SonarQube Scanner 非常不同用于所有其他语言。

sonar.exclude您尝试使用的行只有在您使用常规 SonarQube 扫描仪时才有效,因为它包含 Sonar-project.properties 文件。 SonarQube Scanner for MSBuild 只有一个 SonarQube.Analysis.Xml 文件,其中包含您可以调整的项目相关设置。

您可以对 SonarQube.Analysis.Xml 文件使用几种覆盖策略:

  • 在 MSBuild *.*proj 文件(对应于 SonarQube 模块)中定义的项目特定属性可以覆盖:
  • 在命令行 (/d:propertyName=value) 中定义的属性可以覆盖:
  • SonarQube.Analysis.xml 配置文件中定义的属性
  • 在项目级别的 SonarQube 用户界面中定义的属性,可以覆盖所有内容
  • 在全局级别的 SonarQube 用户界面中定义的属性,不能覆盖任何内容

从您的解决方案中排除特定文件夹或扩展:

您需要将排除项添加到每个项目的 .csproj 文件中。这是您应该在主根节点中使用的语法,称为 <Project...>并进入目标之一,最好是<Target Name="BeforeBuild"> .希望下面的语法足够不言自明,但如果不是,请在此答案下发表评论,我会立即更新。

<Target Name="BeforeBuild">
<ItemGroup>
<SonarQubeSetting Include="sonar.exclusions">
<Value>**/Databases/**/*</Value>
</SonarQubeSetting>
</ItemGroup>
</Target>

希望对您有所帮助!

Source

关于c# - 带 C# 插件和 MSBuild Runner 的 SonarQube 不排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35656157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com