【云原生技术】sonar-cobol-plugin是什么

Sonar-COBOL-Plugin (在 SonarQube ⾥显示为 “COBOL” 分析器)

  1. 基本定义
    • 由 SonarSource 官方出品的 COBOL 语言分析器 JAR
    • 负责把 COBOL 源码转换成 SonarQube 的规则违例、复杂度、重复代码、注释率等指标
    • 和 Java、C#, JS 等分析器一样,只是针对 COBOL 语法/方言

  2. 许可证与版本
    • 属于 SonarQube 的“商用语言”序列

    • 必须在 Developer Edition 及以上(COBOL 最低需要 Enterprise Edition)
    • 需在 Administration ▶ License Management 中导入商业授权 key 才会生效
      • 最新插件版本随 SonarQube 主版本一同发布(例如 SonarQube 10.5 内嵌 cobol-plugin 2.15.0)
  3. 支持的方言与文件
    • IBM Enterprise COBOL / z/OS
    • Micro Focus COBOL
    • ACUCOBOL、OpenCOBOL/GnuCOBOL(常用语法均覆盖)
    • 识别后缀:.cob, .cbl, .cobol, .cpy, .copybook …
    • 固定格式、自由格式、混合格式均可解析
    • COPY 语句支持多级 include 目录:
    sonar.cobol.copy.directories=src/main/cobol/copybooks,resources/copy

  4. 能力一览
    • 600+ 规则(Bug / Security Hotspot / Code Smell)
    • 数据流分析:未初始化字段、表下标越界、DIVIDE BY ZERO 等
    • 安全检查:硬编码密码、命令注入(CALL “SH”)、SQL INTO 危险写等
    • 代码度量:复杂度、嵌套层次、未使用段、数据结构大小
    • 复制检测:跨 COPYBOOK 的代码克隆
    • 与 SCM、UT、覆盖率报告、Quality Gate 集成完全一致

  5. 与社区历史插件的区别
    • 早期有一个开源 “sonar-cobol-plugin”(2010-2013 年停止维护)
    • 现在官方商业插件替代了社区版:解析器、规则库、IDE 扩展(SonarLint for Eclipse)均统一由 SonarSource 维护
    • 若在 Marketplace 找到同名旧插件,请勿与官方版本混用

  6. 安装步骤(需商业 license)
    ① 下载与服务器版本匹配的 cobol-plugin-x.y.z.jar(若未内嵌)放入 $SONAR_HOME/extensions/plugins
    ② 重启 SonarQube
    ③ Administration ▶ License Management 上传 COBOL license
    ④ 在 Rules 里出现 “COBOL” 仓库;在 “Quality Profiles” 建立/激活规则
    ⑤ sonar-scanner 正常运行;*.cbl 等文件会被自动识别

  7. 常用配置键
    sonar.cobol.file.suffixes=.cob,.cbl,.cpy
    sonar.cobol.charset=IBM-037 # 针对 EBCDIC 主机文件
    sonar.cobol.copy.directories=src/copy
    sonar.cobol.format=fixed|free|mixed
    sonar.cobol.dialect=ibm|microfocus|gnucobol
    sonar.cobol.tabulation.stop=8

  8. 典型使用场景
    • 主机现代化:持续检测 z/OS COBOL 程序 quality gate
    • 批量改造:优化 PERFORM、嵌套 IF、去除死代码
    • 合规与安全:SOX/PCI 对主机代码的静态审计

如需试用,可联系 SonarSource 获取 14-/30-天 Enterprise Edition 许可证;安装插件后即可在本地或 CI/CD 管道里分析 COBOL 代码。

你可能感兴趣的:(云原生,java,git,开发语言)