Sonarqube - 什么是规则键?

Sun*_*Sun 5 code-coverage static-code-analysis sonarqube

我正在尝试更改有关 Sonarqube 设置的 Jenkins 工作。所以我打开了我的 Jenkins 作业配置,我看到了这样的东西

sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5
sonar.issue.ignore.multicriteria.e1.ruleKey=squid:S00112
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*.java
Run Code Online (Sandbox Code Playgroud)

我正在 Sonarqube 文档中搜索 ruleKey "squid:S00112",但我找不到任何关于它的参考。

我需要添加更多规则来忽略。但我无法识别规则规则键值(如 ruleKey=squid:S00112)。

小智 5

在 SonarQube 服务器上,规则键显示在规则描述的右上角。例如,您可以在此规则描述中查找squid:S109

SonarQube 规则键由存储库 id 组成 规则 id

存储库 ID

除了 java 分析器奇怪地使用“squid”之外,每个语言分析器都创建了几个规则存储库,其 id 通常包含语言名称。

例如,这是 sonarcloud.io ( source )上存在的存储库密钥列表

LANGUAGE_ID : REPOSITORY_KEY_LIST
abap        : abap, common-abap
c           : c, common-c
cpp         : cpp, common-cpp
cs          : csharpsquid, common-cs
css         : css, common-css, external_stylelint
flex        : flex, common-flex
go          : go, common-go, external_golint, external_govet
java        : squid, common-java, external_checkstyle, external_findsecbugs, external_pmd, external_spotbugs
js          : javascript, common-js, external_eslint_repo
kotlin      : kotlin, common-kotlin, external_android-lint, external_detekt
objc        : objc, common-objc
php         : php, common-php
plsql       : plsql, common-plsql
py          : python, common-py, Pylint
ruby        : ruby, common-ruby, external_rubocop
swift       : swift, common-swift, external_swiftlint
ts          : typescript, common-ts, external_tslint
tsql        : tsql, common-tsql
vbnet       : vbnet, common-vbnet
web         : Web, common-web
xml         : xml, common-xml
Run Code Online (Sandbox Code Playgroud)

规则编号

以前的规则可能有一个像“NoSonar”这样的 Pascal Case id,但是现在,大多数规则都有一个 id,后面是“S”,后面是来自这个存储库jira.sonarsource.com/browse/RSPEC/的规则的 jira 编号

例如,规则 id S109RSPEC-109匹配

注意:rules.sonarsource.com/在 URL 中也使用RSPEC-109格式,您可以轻松地将其转换为S109