如何设置 SonarQube 质量配置文件规则

How to set SonarQube Quality Profile rule

在 SonarQube 中,有一个 Java Resources should be closed (squid:S2095) 的规则。此规则有一个参数 excludedResourceTypes

如何设置这个参数?

您可以设置它的一种方法是转到您的 SonarQube 服务器的管理 -> 分析范围:

  1. 浏览到您的 Sonar 实例:http://servername:9000
  2. 以管理员身份登录
  3. 点击管理
  4. 选择左侧的“分析”选项卡
  5. 转到问题块并查看 "Ignore Issues on Multiple Criteria"

例如,如果您想限制以下 COBOL 规则:"Prevent GO TO statement from transferring control outside current module" 位于目录 bank/creditcard 和 bank/bankcard => 这个需要两个条件来定义它:

 key: cobol:COBOL.GotoTransferControlOutsideCurrentModuleCheck; path:
    bank/creditcard/**/*

    key: cobol:COBOL.GotoTransferControlOutsideCurrentModuleCheck; path:
    bank/bankcard/**/*

更新

You can have SonarQube ignore issues on certain components and against certain coding rules. Go to Administration > General Settings > Analysis Scope > Issues. Note that the properties below can only be set through the web interface because they are multi-valued.

SonarQube.Issue.* 属性的

None 可以通过命令行设置,因为它们是多值的。请在这里找到官方documentation

这些是 SonarQube 问题属性:

  • 忽略文件问题 - 键:sonar.issue.ignore.allfile
  • 忽略块中的问题 - 键:sonar.issue.ignore.block
  • 忽略多个条件的问题 - 键:sonar.issue.ignore.multicriteria
  • 限制编码规则的范围-键:sonar.issue.enforce.multicriteria

如果您希望将此规则应用到特定的 SonarQube 项目,您可以转到 SonarQube:

  1. 浏览到项目
  2. Select 你的项目
  3. 浏览到管理 -> 常规设置 -> 分析范围并设置如上所示的值。

SOURCE

***更新 2:做一个 google 搜索看起来有办法通过 POM.xml 传递这个 属性: 但不是按照官方的文档。