如何为SonarQube创建自己的C#自定义规则?

我一直在做一些研究.
我找到的是一个非常好的样本列表,但对于其他语言here.

我也看了sonar-dotnet.但它看起来与其他实现不太相似.

最后,说实话可能是我的最后一次机会,我快速浏览了FxCop自定义规则,我不确定什么是正确的方法.

我想要做的只是一个基本的c#规则,可以像this predefined by sonar一样进行审核.

我的意思是,使用不合规代码和合规解决方案.

解决方法:

您指出的声纳自定义规则示例都是用Java编写的,并使用Java编写的解析器来处理各种目标语言.
C#和VB.NET的声纳-netnet分析器使用Microsoft提供的Roslyn framework用C#编写.

如果你想为C#编写自己的自定义规则,那么编写Roslyn分析器绝对是最简单的方法(Roslyn取代了现在已经过时的FxCop).但是,有许多免费的第三方Roslyn分析器可用,所以有人可能已经编写了至少一些你想要的规则.看看NuGet,看看有什么可用.

接下来,您希望Roslyn分析器提出的问题出现在SonarQube中.如果您使用的是新版本的SonarQube(v7.4),SonarScanner for MSBuild(v4.4)和SonarC#插件(v7.6),那么第三方Roslyn分析器引发的问题将自动导入为有关详细信息,请参阅docs.

通用问题有一些重大限制,就像无法选择在SonarQube UI中运行的规则一样.如果您想要更全面的体验(或者如果您使用的是较旧版本的SonarQube),您可以使用SonarQube Roslyn SDK生成包装Roslyn分析器的自定义SonarQube插件.使用SDK非常简单:它是针对Roslyn分析器运行的exe,它会为您生成一个SonarQube插件jar.

上一篇:(Java)if语句优化


下一篇:linux – SONAR – 使用Cobertura测量代码覆盖率