我们想在一个相当庞大的 C# 解决方案上使用 SonarQube/SonarLint,该解决方案大约有 40 个项目(C++ 解决方案希望稍后会出现)。但是,我们正在努力与 VS 集成。问题如下:
- 我们在 SonarQube 服务器上定义了一个质量配置文件,并将我们的解决方案绑定到该配置文件。结果,SonarLint 接收配置文件作为
.ruleset
解决方案文件,并创建一堆文件:- 绑定配置(
.sqconfig
)(文件夹<solution dir>/SonarQube
) - 解决方案规则集(文件夹
<solution dir>/SonarQube
) - 项目规则集文件(每个项目文件夹一个),允许在项目级别调整解决方案规则集(伟大且(对我们而言)重要的功能)
- 绑定配置(
- 现在,我们想在我们的开发团队中分享我们的绑定和规则集。因此,我们已经签入了上述所有文件。但是,这有一个明显的缺点:每次 SonarLint 从 SonarQube 服务器接收到质量配置文件的更改时,我们都会有一堆传出的更改。调查这些更改意味着大多数(如果不是全部)文件根本没有更改,但似乎只是被触及了。这对我们来说是一个阻碍,因为我们不想处理常规基础上的传出更改的“污染”列表。
- 请注意,这可以很容易地复制:
- 将解决方案绑定到质量配置文件
- 签入所有新的和更改的文件
- 右键单击 SonarQube 连接,选择更新
- => 通过绑定解决方案创建的所有规则集文件都被标记为传出更改(并且没有包含任何实际更改),刷新团队资源管理器视图没有帮助
- 请注意,这可以很容易地复制:
- 因此,我们认为我们可以从 TFS 中排除所有 SonarLint 创建的文件。这(据我所知)对于解决方案规则集应该没问题(因为该规则集自动与 SonarQube 服务器同步),我们可以让每个开发人员自己处理一次解决方案绑定。但是,由于似乎无法针对 VS 项目调整 SonarQube 服务器上的质量配置文件,因此我们将失去使用 VS 项目特定规则集的能力(或者必须手动复制它们)。
因此,我的问题是:在使用 SonarLint 和 TFS 作为版本控制系统时,跨开发团队共享 SonarQube 规则集的最佳实践是什么?