我正在尝试使用 Roslyn SDK Generator 在 VisualStudio 2015 中创建自定义 SonarQube 规则。
生成器工作正常,我可以将 .jar 文件发布到 SonarQube 服务器并在日常构建中使用我的自定义规则。现在我想将规则归类为“漏洞”,但它总是显示为“代码气味”。
我尝试了几种方法:
将 DiagnosticDescriptor 类的“类别”更改为“安全”
private const string Category = "Security"; private static DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Warning, isEnabledByDefault: true, description: Description); public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get { return ImmutableArray.Create(Rule); } }
更改了生成器提供的 xml 模板并使用新的 xml 重新生成了插件(我尝试使用“SECURITY”和“SECURITY_COMPLIANCE”代替生成的“MAINTENABILITY_COMPLIANCE”)
<sqale xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <chc> <key>SECURITY</key> <chc> <rule-key>MyRule</rule-key> <prop> <key>remediationFunction</key> <txt>CONSTANT_ISSUE</txt> </prop> <prop> <key>offset</key> <txt /> <val>15min</val> </prop> </chc> </chc> </sqale>
到目前为止没有任何效果。
我正在使用以下配置:
- VS2015 更新 3
- SonarQube v. 6.1
- SonarLint v. 2.8
- 使用 SonarQube.Roslyn.SDK v. 1.0 开发的自定义 C# 分析器