天天看点

如何导出sonarqube的规则_c# – 将Visual Studio 2015规则集导出/导入SonarQube

简短的答案:没有支持这样做的方法.但是你可以尝试一下来解决这个问题.

长答案

您需要解决多个问题:

>您可能用于将分析结果推送到SonarQube服务器的MsBuild的SonarQube扫描仪正在从SQ服务器中拉下活动规则.然后,它通过ruleset参数传递到msbuild中的CoreCompile任务.所以即使你创建了自己的,那将被删除参数,并改为声纳一个.

>结束步骤将问题推送到SQ服务器,但SQ服务器将忽略不知道的任何规则ID.所以在你的情况下,所有的CS *问题将被忽略.

目前我不认为这些问题有一个简单的解决方案.一般的建议是创建你的SQ插件,它定义所有的CS *规则.将这些规则纳入规则集文件(可能在begin和build阶段之间),解析输出json文件并将结果发送到服务器.这可以工作,但这是一个很大的任务,有很多地方可以去干草.

另一种方法是看看SonarQube Roslyn SDK.这个SDK让我们从Roslyn nuget分析仪中创建一个SonarQube插件.如果你创建了这样一个插件,你会看到它嵌入了2-3个XML文件.这些文件描述了插件的规则.为了支持你的情况我会:

>创建一个具有一个规则的Roslyn分析器包. (其中没有报告任何问题.)

>更改嵌入文件以定义CS *规则.获得所有CS *规则的清单可能不是那么容易,但this可能是一个好的开始.>将SQ插件部署到SQ服务器,并希望它可以正常工作.