【云原生技术】sonar的页面可以配置新增一条规则吗?


可以,也不可以——取决于你想要的“新增”到底是
A) “把已有规则激活/复制一份,改改阈值或正则”
B) “写一段全新的检查逻辑(例如 BigDecimal.valueOf(float) 也报错)”

SonarQube 的 Web UI 只支持 A,无法完成 B。下面分层说明:

──────────────────────────────

1. UI 能做的:基于模板或现成规则“派生”

──────────────────────────────
• 激活/关闭现有规则:Quality Profile → Activate/Deactivate
• 改参数:点进规则 → Change rule parameters(例如正则、复杂度阈值)
• 使用“Rule Template”创建派生规则

  • 只有当某语言分析器提供模板时才看得到“Create”按钮
  • 常见例子:
    • XML 分析器的 XPath 模板
    • Generic Text 分析器的“匹配正则”模板
  • 你只是填参数、改描述,底层逻辑还是那段模板代码

=> 换句话说:UI 可以让一条可参数化的规则多长出几个“克隆体”,但不能写新的抽象语法树(AST)遍历逻辑。

──────────────────────────────

2. UI 做不到的:真正的“新增一条自定义规则”

──────────────────────────────
如果想让扫描器再检查
• new BigDecimal(float)
• BigDecimal.valueOf(double/float)
这已经超出现有 java:S2111 的参数范围,属于新增语义规则。

实现途径只有两条,且都离开了 Web UI:

  1. 写一个自定义插件(SonarJava API、PMD、Checkstyle…),打成 .jar 放进 $SONAR_HOME/extensions/plugins,再在 UI 里激活。
  2. 在 CI 里跑外部静态分析器(PMD、SpotBugs、ESLint…),把结果通过“External Issues”导入 Sonar。

这才算真正“新增”逻辑。

──────────────────────────────

3. 常碰到的误区

──────────────────────────────
• “Quality Gate 里 + 条件” ≠ 新规则
Quality Gate 只是对已有指标加阈值。
• Marketplace 里装插件,插件带来的规则才能在 UI 里看到并激活。

──────────────────────────────

4. 结论一句话

──────────────────────────────
SonarQube Web 页面只能基于已有可参数化模板派生规则;
要写完全新的扫描逻辑,必须开发或引入插件,然后再到页面里启用它——单纯靠 UI 点几下是做不到的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿寻寻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值