jenkins - 如何为 Sonar 指定 StyleCop 设置?

标签 jenkins gradle sonarqube stylecop

我正在尝试通过 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 插件指定的 Sonar 属性是:

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 属性,尽管 Sonar FAQ提到这不能用于指定事件规则。

当我在 VisualStudio 中运行 StyleCop 时,它确实使用了正确的规则。

有没有办法验证 StyleCop 从哪里获取其设置?我是否遗漏了一些明显的东西?

感谢任何帮助。

最佳答案

Sonar 的规则通过 Quality Profiles admin screens 启用/禁用(以及设置规则优先级)。在 Sonar 中。

由于 Sonar 的架构,必须在插件运行之前填充规则,因此插件本身在分析代码时无法直接更改违规状态或优先级。该插件在服务器启动时填充可用规则,但 Sonar StyleCop 插件不提供除通过 QualityProfile 以外的默认值修改规则设置的方法。

关于jenkins - 如何为 Sonar 指定 StyleCop 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20743965/

相关文章:

android - Gradle(v4.8) 项目同步失败 android studio

java - Android-SonarQube

docker - 如何在 docker 上绑定(bind)已安装的持久卷?我正在尝试在 docker 上运行 Sonarqube

Jenkinsfile - 获取构建之间的所有更改

jenkins - 如何在多分支管道中为特定分支设置下一个版本号

java - Jenkins html 发布者插件显示旧的缓存 html——不是更新的

Android Studio 0.3.1、appcompat-v7 和 android 库项目总是生成 IllegalStateException

jenkins - 使用 ansible 使 jenkins 能够持续交付

android - 将版本代码设置为当前日期

Sonarqube 和 Cucumber 功能