Static Code analysis tutorial with Konveyor and Kantra part - 1
Konveyor Kantra CLI 是一个命令行工具,用于分析和转换应用程序源代码以支持现代化和迁移。它通过静态代码分析检测问题,还能提取元数据、生成部署资产(如Kubernetes清单),并通过容器或原生方式运行。该工具支持Java、Go、.NET和Node.js等多语言,并能与CI/CD管道集成。Kantra是Konveyor AI(Kai)等基于LLM的自动化应用现代化工作流的基础。
Kantra预置了2400+条Java领域规则,涵盖标准用例如JDK版本迁移、Spring框架升级、JBoss到Quarkus迁移等。本系列博客将逐步探索这些功能。要使用Kantra运行自定义规则,需要通过其命令行界面(Kantra CLI)进行操作——这类似于驾驶汽车需要方向盘和踏板来控制方向与速度。
虽然Kantra也集成在VSCode的Konveyor扩展中,但本文将重点介绍CLI版本。Kantra CLI是终端运行的核心工具,主要功能包括:
- 启动项目代码分析
- 指定分析规则
- 生成分析结果报告
- 测试自定义规则有效性
简言之,CLI是与Kantra分析引擎交互的桥梁。
安装步骤
- 下载Kantra
- 解压归档文件
- 重命名CLI并移至PATH路径(示例:
mv darwin-kantra $HOME/bin/kantra
) - 将解压文件夹所有文件移至.kantra目录:
1 2
cd kantra.darwin.arm64/ mv * $HOME/.kantra
|
|
实战分析示例
|
|
命令参数解析:
--input
: 指定待分析代码路径--output
: 分析报告输出目录--overwrite
: 覆盖已有输出文件--target
: 指定目标环境(如openjdk17)--rules
: 规则目录路径
执行后生成的HTML报告会清晰标注违规代码位置,点击可查看具体问题代码行。
规则测试
开发自定义规则时,可用内置测试框架验证:
|
|
该命令会执行当前目录下的所有规则测试用例。
工作原理
当执行kantra analyze
命令时:
- CLI解析命令参数
- 从
--rules
加载规则集 - 分析引擎扫描
--input
指定的代码 - 应用规则逻辑识别问题模式
- 生成事件记录并输出报告
流程示意图:
|
|
结论
Kantra CLI是代码现代化改造的核心工具,通过掌握基础分析命令和测试方法,开发者可以高效开展项目迁移工作。下篇博客将深入讲解规则集(Ruleset)的组织结构及自定义规则开发。