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