我已经设置了本地 SonarQube 5.1.1 服务器。我还安装了 C# 插件(4.1 版)以及 MSBuild 运行程序(1.0 版)。然后,我在 .NET 代码库上为我目前正在处理的项目执行了两次单独的运行:
- 使用 sonar-runner 和 C# 插件
- 使用 MSBuild 运行器
两次运行都是通过 CLI 进行的。然而,运行产生了非常不同的结果。这是一个例子:在第一次运行中,SonarQube 计算出的代码行数大约为 956 000,而在第二次运行中,它被计算为“仅”大约 434 000。然后我做了一些挖掘,看起来像后者跳过一些自动生成的文件。这些文件/类是由内部开发的旧 ORM 工具生成的。
我认为除非另有说明 - 通过使用包含/排除模式 - MSBuild SonarQube 运行器将分析给定项目中的每个.cs 文件,但显然情况并非如此。
有没有人遇到过同样的“问题”,有没有人知道什么样的自动生成的文件会被自动排除在分析之外?