我想通過詹金斯客戶端上的gradle sonarrunner插件運行StyleCop(4.7.47)。它運行良好,但由於某種原因,它不使用我的Settings.StyleCop文件,其中我禁用了一些規則,所以Sonar(3.7)報告了我不感興趣的違規。如何爲Sonar指定StyleCop設置?
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提到這不能用來指定活動規則。
當我在VisualStudio中運行了StyleCop它使用正確的規則。
有沒有一種方法來驗證哪裏了StyleCop得到它的設置?我錯過了明顯的東西嗎?
任何幫助表示讚賞。
謝謝。不是我所希望的答案,但它澄清了事情。這意味着您必須手動確保本地和構建環境使用相同的StyleCop設置。 – GlennV
不幸的是,是的。 SonarQube維護者已經採取了SonarQube應該成爲運行規則的主要來源的立場,等等。然而,包括SyleCop插件在內的幾個插件提供了一種將SonarQube設置導出爲其他應用可用的配置文件的方法。如果進入QualityProfiles頁面並單擊「Permalinks」選項卡,StyleCop鏈接將下載帶有Sonar設置的StyleCop配置文件。不過,我不能說我已經嘗試過。 –