Java代码质量检查方法、装置、设备和存储介质制造方法及图纸

技术编号:24454543 阅读:50 留言:0更新日期:2020-06-10 15:10
本申请涉及计算机技术领域,尤其涉及一种Java代码质量检查方法、装置、设备和存储介质。方法包括:获取至少一个待上传的Java代码文件;将至少一个待上传的Java代码文件输入至开源分析工具;遍历抽象语法树,通过预设规则解析对抽象语法书中的每一行java代码语句进行对比检测,得到检测结果,检测结果包括一个数组以及正则表达式,数组至少包括待分析Java代码的粒度函数以及待分析Java代码中类里不符合预设规则的结果;将粒度函数以及待分析Java代码中类里不符合预设规则的结果保存至第一集合;计算第一集合与条件集合的差值,得到不合规信息集合;若不合规信息集合不为空集,则将Git的钩子阻塞并返回不符合预设规则的结果给用户。减少上传代码的质量问题。

Java code quality inspection methods, devices, equipment and storage media

【技术实现步骤摘要】
Java代码质量检查方法、装置、设备和存储介质
本申请涉及计算机
,尤其涉及一种Java代码质量检查方法、装置、设备和存储介质。
技术介绍
代码质量的评估是IT领域衡量一个程序员能力的关键,也是是项目健壮的基础之一。若编写的代码不存在注释和不规范的格式,编写的代码晦涩难懂的。然而现有代码的评判标准是依靠程序语言的现有语法,根据程序可能出现的结果进行预判在高并发情况下和针对多用户线程考验程序出现的结果进行评判,从而使得代码看似正常的逻辑却也可能藏有致命隐患。传统的代码检查大部分是通过人为检查代码缺陷,或者通过开源项目提供的开发工具插件在开发人员开发过程中进行检查,但是人为检查需要耗费大量的人力并且得不到确切的隐患排除,开发插件需要开发人员主动配合公司规范使用,若开发人员对此类插件不主动接受,则可以不遵从一些开发规则,导致代码出现隐患,轻则运行过程中出现问题,重则导致公司因为技术上的失误从而造成损失。
技术实现思路
本申请提供了一种通过配置Java代码质量检查方法,能够避免上传的Java代码出现的质量问题。第一方面本文档来自技高网...

【技术保护点】
1.一种Java代码质量检查方法,其特征在于,所述方法包括:/n获取至少一个待上传的Java代码文件;/n将所述至少一个待上传的Java代码文件输入至开源分析工具,所述开源分析工具为采用伯克利软件发行版协议的Java程序代码检查工具;/n通过所述开源分析工具获取所述至少一个待上传的Java代码文件对应Java代码的抽象语法树;/n遍历所述抽象语法树,通过预设规则解析对抽象语法书中的每一行java代码语句进行对比检测,得到检测结果,所述检测结果包括一个数组以及正则表达式,所述数组至少包括待分析Java代码的粒度函数以及所述待分析Java代码中类里不符合预设规则的结果,所述预设规则用于检测Java...

【技术特征摘要】
1.一种Java代码质量检查方法,其特征在于,所述方法包括:
获取至少一个待上传的Java代码文件;
将所述至少一个待上传的Java代码文件输入至开源分析工具,所述开源分析工具为采用伯克利软件发行版协议的Java程序代码检查工具;
通过所述开源分析工具获取所述至少一个待上传的Java代码文件对应Java代码的抽象语法树;
遍历所述抽象语法树,通过预设规则解析对抽象语法书中的每一行java代码语句进行对比检测,得到检测结果,所述检测结果包括一个数组以及正则表达式,所述数组至少包括待分析Java代码的粒度函数以及所述待分析Java代码中类里不符合预设规则的结果,所述预设规则用于检测Java代码异常的规则;
将所述粒度函数以及所述待分析Java代码中类里不符合预设规则的结果保存至第一集合;
根据预设条件在Java代码质量检查算法中生成与预设条件相对应的条件集合,所述预设条件包括所述预设规则检查执行时忽略任意类中任意函数、所述预设规则检查执行时忽略任意分支以及所述预设规则检查执行时忽略任意类;
计算所述第一集合与所述条件集合的差值,得到不合规信息集合;
若所述不合规信息集合不为空集,则将Git的钩子阻塞并返回不符合所述预设规则的结果给用户。


2.根据权利要求1所述的方法,其特征在于,所述若所述不合规信息集合不为空集,则将Git的钩子阻塞并返回不符合所述预设规则的结果给用户,包括:
判断所述不合规信息集合是否为空集;
若所述不合规信息集合不为空集,则读取客户端中的配置文件,获取所述配置文件中所述代码名称对应的Git子仓库地址,向所述Git子仓库地址对应的服务器发送结果返回服务请求;
通过所述Git代码管理工具获取所述对应的服务器发送的所述代码名称对应的Git子仓库代码;
通过所述Git代码管理工具将所述Git子仓库代码复制到所述客户端的本地数据库中。


3.根据权利要求1所述的方法,其特征在于,所述获取至少一个待上传的Java代码文件之前,所述方法还包括:
获取用户上传Java代码请求,所述用户上传Java代码请求包括用户权限信息以及用户信息;
检查所述用户上传Java代码请求中的所述用户权限信息,以判断所述用户是否有上传权限;
若所述用户没有上传权限,则禁止上传所述待上传的Java代码文件;
若所述用户拥有上传权限,则校验所述用户信息是否满足上传规则;
若满足所述上传规则,则获取所述待上传的Java代码文件。


4.根据权利要求1所述的方法,其特征在于,所述若所述不合规信息集合不为空集,则将Git的钩子阻塞并返回不符合所述预设规则的结果给用户包括:
提取所述不合规信息集合中的代码信息,得到代码信息集合,所述不合规信息集合包括不合规的Java代码的类名、Java函数、行号以及字符信息;
判断所述代码信息集合是否为空集;
若所述代码信息集合不为空集,则将所述不合规信息集合中的所述类名、所述Java函数、所述行号以及所述字符信息按顺序排列;
通过固定格式将排列好的所述类名、所述Java函数、所述行号以及所述字符信息组合填充生成提示用户的消息;
将Git的钩子阻塞并返回不符合所述预设规则的结果以及所述提示用户的消息发送给用户。

【专利技术属性】
技术研发人员:张汉翼
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:广东;44

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

1