我正在尝试通过Jenkins客户端上的gradle sonarrunner插件运行StyleCop(4.7.47)。它运行良好,但是由于某种原因,它不使用我的Settings.StyleCop文件,在该文件中我禁用了许多规则,因此Sonar(3.7)报告了我不感兴趣的违规行为。
C#项目具有以下结构:
/Root
Src/
Project1/...
Project2/...
MySolution.sln
Settings.StyleCop
build.gradle
我的Settings.StyleCop文件如下所示:
<StyleCopSettings Version="105">
<GlobalSettings>
<StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
</GlobalSettings>
<Analyzers>
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
<Rules>
<Rule Name="ElementDocumentationMustBeSpelledCorrectly">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
</Analyzer>
</Analyzers>
</StyleCopSettings>
我为sonarrunner gradle插件指定的声纳属性是:
property "sonar.language" , "cs"
property "sonar.sources" , "Src"
property "sonar.dotnet.visualstudio.solution.file" ,"Src/MySolution.sln"
property "sonar.dotnet.key.generation.strategy", "safe"
property "sonar.sourceEncoding" , "UTF-8"
我也尝试过指定sonar.stylecop.analyzers.settings property
,即使Sonar FAQ提到不能将其用于指定活动规则。
当我在Visual Studio中运行StyleCop时,它会使用正确的规则。
有没有一种方法可以验证StyleCop在何处获取其设置?我缺少明显的东西吗?
任何帮助表示赞赏。
通过Sonar中的“质量配置文件”管理屏幕启用/禁用Sonar的规则(以及设置规则优先级)。
由于Sonar的体系结构,必须在插件运行之前填充规则,因此,插件本身无法在分析代码时直接更改违规状态或优先级。该插件在服务器启动时填充可用规则,但是Sonar StyleCop插件除了通过QualityProfile之外,没有提供从默认值修改规则设置的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句