一种基于PMD的静态代码扫描方法、系统、设备及储存介质技术方案

技术编号:40369859 阅读:28 留言:0更新日期:2024-02-20 22:14
本发明专利技术公开了一种基于PMD的静态代码扫描方法、系统、设备及储存介质,所述方法包括以下步骤:通过PMD将源代码转化为抽象语法树AST;采用访问者模式扫描分析抽象语法树AST中的成员方法、成员方法目标注解、成员变量调用、局部变量调用、多行文本和嵌套调用的应用场景,统计符合输入的接口;记录扫描结果。在记录扫描结果步骤前或后,还包括:与上次扫描结果对比,给出接口调用变更或增加的警示。本发明专利技术的基于PMD的静态代码扫描方法,可针对指定的接口、类、方法和注解进行扫描统计,并记录扫描结果,具有通用性。支持与上次扫描结果相对比,给出接口调用变更或增加的警示;针对嵌套结构、多行文本等情况能做出正确结果;要求扫描大量代码时,效率优良。

【技术实现步骤摘要】

本专利技术涉及计算机,特别是涉及一种基于pmd的静态代码扫描方法、系统、设备及储存介质。


技术介绍

1、数据中台智能分析为统计公共组件在上层服务中使用情况,需要扫描组件接口调用场景,现有技术中主要采用两种方式,一种是通过正则表达式统计接口调用情况,另一种是通过语法分析工具antlr进行代码统计。其中,通过正则表达式统计接口调用,无法分析程序中的语法,在处理嵌套结构、多行文本等情况下可能会存在一些问题,导致最终的统计准确性很低;而通过语法分析工具antlr进行代码统计,使用antlr需要编写语法规则,语法的正确性和完整性对结果的准确性有着很大的影响;antlr生成的解析代码较复杂,可读性略差;antlr针对大工程代码扫描效率低下,代码量过大的情况下,还会出现oom。


技术实现思路

1、有鉴于此,本专利技术供一种基于pmd的静态代码扫描方法,至少部分解决现有技术中存在的问题。

2、第一方面,本专利技术实施例提供了一种基于pmd的静态代码扫描方法,所述方法包括以下步骤:

3、通过pmd将源代本文档来自技高网...

【技术保护点】

1.一种基于PMD的静态代码扫描方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的基于PMD的静态代码扫描方法,其特征在于,在通过PMD将源代码转化为抽象语法树AST步骤之前,还包括:

3.根据权利要求1或2所述的基于PMD的静态代码扫描方法,其特征在于,所述采用访问者模式扫描分析抽象语法树AST中的成员方法、成员方法目标注解、成员变量调用、局部变量调用的应用场景,统计符合输入的接口包括:

4.根据权利要求1或2所述的基于PMD的静态代码扫描方法,其特征在于,所述采用访问者模式扫描分析抽象语法树AST中的多行文本和嵌套调用的应用场景,统...

【技术特征摘要】

1.一种基于pmd的静态代码扫描方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的基于pmd的静态代码扫描方法,其特征在于,在通过pmd将源代码转化为抽象语法树ast步骤之前,还包括:

3.根据权利要求1或2所述的基于pmd的静态代码扫描方法,其特征在于,所述采用访问者模式扫描分析抽象语法树ast中的成员方法、成员方法目标注解、成员变量调用、局部变量调用的应用场景,统计符合输入的接口包括:

4.根据权利要求1或2所述的基于pmd的静态代码扫描方法,其特征在于,所述采用访问者模式扫描分析抽象语法树ast中的多行文本和嵌套调用的应用场景,统计符合输入的接口包括:

5.根据权利要求1或2所述的基于pmd的静态代码扫描方法,其特征在于,所述采用访问者模式扫描分析抽象语法树as...

【专利技术属性】
技术研发人员:周立伟李振祥刘强
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1