我们目前正在评估.NET应用程序对SonarQube / SonarLint的使用。我们对到目前为止所看到的一切感到非常满意(顺便说一句,对于将SonarQube推广到现在为止感到很荣幸-我几年前就在我的博士项目中使用了它,自那时以来,它有了很大的进步!)。
但是,有一件事有些令人惊讶:当我将SonarLint实例连接到SonarQube服务器(工作正常)并开始同步绑定的项目时,SonarLint开始下载nuget包(这是预料之中的),然后创建一个对于我们解决方案的每个项目,甚至两个.ruleset文件(除了SonarQube/<solution name>CSharp.ruleset
我认为是解决方案范围的规则集的文件)。
我期望并希望仅对整个解决方案有效的单个规则集(以及可能对有意义的项目(例如,测试项目)覆盖该规则集的选项)。
这种行为是否完全可能,即我错过了什么吗?到目前为止,文档是我唯一确定的SonarLint缺少的领域。
创建这些其他规则集文件是有原因的。好吧,实际上有多个:
这是为了允许您设置所有项目必须遵守的基准,但是为具有特定类型的代码的项目启用附加规则。您可能启用了一些特定于Sharepoint项目的MSOCAF规则,这对您的Unittest或Windows Service项目没有意义
例如,当您要修复项目中的技术债务时,可以为整个解决方案设置基准,并慢慢收紧各个项目的规则集,以便将清理工作集中在特定项目上。不必在解决方案中的所有项目中同时清除一条特定的规则或一组规则。
每次与SonarQube同步时,项目规则集文件之一将被覆盖。剩下的一个将保留。允许您保存自定义设置,并且仍然可以安全地将更改同步到SonarQube基准。
如果我没有记错的话,那么解决方案规则集和存储自定义内容的规则集一样都包含在项目规则集中。目前,我手头没有SonarQube服务器来验证哪个规则集文件服务器有什么用途,但这是其背后的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句