项目第三方库升级异常检测方法及系统、设备及存储介质技术方案

技术编号:24454688 阅读:28 留言:0更新日期:2020-06-10 15:12
本发明专利技术提供了项目第三方库升级检测方法及系统,包括:获取第三方库列表,获取信息;通过用户上传的信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据;利用词法分析技术分析数据获取具体的类更改信息;根据各个第三方库的升级影响数据与关联的第三方库数量,对引用升级第三方库的项目进行影响评分并选取预设评分阈值内的第三方库;以及对处于预设评分阈值内的第三方库的具体的类更改信息进行影响评分,并检测出升级的第三方库。提供获取第三方库,可直接对接权威仓库,保证通用的第三方库代码升级版本可以准确有效的获取,具有时效性和准确性。

The third party library upgrade anomaly detection method, system, equipment and storage medium

【技术实现步骤摘要】
项目第三方库升级异常检测方法及系统、设备及存储介质
本专利技术属于计算机应用
,尤其涉及一种项目第三方库升级异常检测方法及系统、设备及存储介质。
技术介绍
随着网络的蓬勃发展,应用程序的数量也相应的处于井喷式的发展阶段。当前应用程序中会引入大量的第三方库文件,第三方库文件中包含了大量的开源代码以及更多的第三方库文件。而大量使用开源代码给软件开发带来极大的便利同时,也有着复杂的不确定性。在应用程序开发生命周期中,开发人员想要升级一个第三方库版本时,往往会出现项目中依赖的第三方库某字段或方法在升级时被删除,而导致项目整体部署失败的问题。现阶段,开发人员主要通过两种方式对第三方库进行升级检查:1、人工审查对开发人员的技术要求较高,耗费时间长,开发人员需要特别清楚项目中哪里用到了升级的第三方库的相关代码,而且也容易出现检查覆盖度不够的情况。2、软件审查的方式需要明确知道项目的所有接口,才能进行相应的升级检查,但是如果应用程序没有完整的自动化测试脚本,那么测试审查也会出现检查遗漏的情况。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术存在的问题,本专利技术提供了一种具有时效性、准确性以及可扩展性的项目第三方库升级检测方法及系统、设备及存储介质。第一方面,本申请实施例提供了一种项目第三方库升级检测方法,所述方法包括:获取第三方库列表,并获取各个第三方库的信息;通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据;利用词法分析技术分析所述差异对比数据获取具体的类更改信息,以及根据具体的类更改信息确定各个第三方库的升级影响数据;根据各个第三方库的升级影响数据与关联的第三方库数量,对引用升级第三方库的项目进行影响评分并选取预设评分阈值内的第三方库;以及对处于预设评分阈值内的第三方库的具体的类更改信息进行影响评分,并检测出升级的第三方库。第二方面,本申请实施例还提供一种项目第三方库升级检测系统,所述系统包括:获取模块:获取第三方库列表,并获取各个第三方库的信息;对比模块:通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据;分析模块:利用词法分析技术分析所述差异对比数据获取具体的类更改信息,以及根据具体的类更改信息确定各个第三方库的升级影响数据;第一影响评分模块:根据各个第三方库的升级影响数据与关联的第三方库数量,对引用升级第三方库的项目进行影响评分并选取预设评分阈值内的第三方库;以及第二影响评分模块:对处于预设评分阈值内的第三方库的具体的类更改信息进行影响评分,并检测出升级的第三方库。第三方面,本申请实施例还提供一种项目第三方库升级检测设备,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面所述的项目第三方库升级检测方法中的各个步骤。第四方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的项目第三方库升级检测方法的各个步骤。本申请实施例提供的项目第三方库升级检测方法,该方法包括:获取第三方库列表,并获取各个第三方库的信息;通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据;利用词法分析技术分析所述差异对比数据获取具体的类更改信息,以及根据具体的类更改信息确定各个第三方库的升级影响数据;根据各个第三方库的升级影响数据与关联的第三方库数量,对引用升级第三方库的项目进行影响评分并选取预设评分阈值内的第三方库;以及对处于预设评分阈值内的第三方库的具体的类更改信息进行影响评分,并检测出升级的第三方库。如此,通过上述步骤检测出的第三方库,可直接对接权威仓库,保证通用的第三方库代码升级版本可以准确有效的获取,具有时效性和准确性,用户还可自由添加第三方库的信息,使得第三方库的信息更加全面,还具有可扩展性。附图说明下面结合附图详述本专利技术的具体结构图1为本专利技术的项目第三方库升级异常检测方法的流程示意图;图2为本专利技术的项目第三方库升级异常检测方法的子流程示意图;图3为本专利技术的项目第三方库升级异常检测方法的另一子流程示意图;图4为本专利技术的项目第三方库升级异常检测方法的另一子流程示意图;图5为本专利技术的项目第三方库升级异常检测方法的另一子流程示意图;图6为本专利技术的项目第三方库升级异常检测方法的程序模块示意图。具体实施方式为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而非全部实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本申请实施例中项目第三方库升级检测方法的流程示意图,本实施例中,上述项目第三方库升级检测方法包括:步骤101、获取第三方库列表,并获取各个第三方库的信息。其中,通过权威第三方库代码仓库以及自定义的代码仓库获取第三方库信息,可对接maven中心仓库等权威第三方库代码的仓库,集中化管理第三方库资源(构件)的一个服务,保证通用的第三方库代码升级可以准确有效的获取,而且用户可以自由的添加第三方库的信息,使得第三方库的信息更加全面。其中,权威第三方库代码仓库指的是如maven仓库等基于文件系统存储的,自定义代码仓库指的是超大型公司或者大型国有企业,对某些不开源的第三方库进行存储与拉取,第三方库指的是除了本地库、系统类库以外的类库,需要显示的申明才可以使用,第三方库信息中除了代码信息外,还有文件名、版本名、发布时间及厂商。步骤102、通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据。其中,项目依赖快照指的是是获取项目或第三方库下的所有文件,通过文件的名称和大小以及最后时间生成一个指纹信息(可以通过hash函数完成),项目详情,指的是通过词法分析技术获取项目中的每一个类,包括这个类中的字段信息,方法信息等,以及这个类需要依赖的其他第三方库的代码信息,所述差异对比数据,指的是某第三方库升级版本时项目代码中修改的字段信息和方法信息等,包括删除,修改,新增等。步骤103、利用词法分析技术分析所述差异对比数据获取具体的类更改信息,以及根据具体的类更改信息确定各个第三方库的升级影响数据。其中,该步骤通过计算项目中原来依赖的第三方库信息中使用差异对比信息中的数据(比如类中的方法信息或字段信息)是哪一种信息,来判断此次项目升级存在的问题。另外,上述本文档来自技高网...

【技术保护点】
1.一种项目第三方库升级异常检测方法,其特征在于,所述方法包括:/n获取第三方库列表,并获取各个第三方库的信息;/n通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据;/n利用词法分析技术分析所述差异对比数据获取具体的类更改信息,以及根据具体的类更改信息确定各个第三方库的升级影响数据;/n根据各个第三方库的升级影响数据与关联的第三方库数量,对引用升级第三方库的项目进行影响评分并选取预设评分阈值内的第三方库;以及/n对处于预设评分阈值内的第三方库的具体的类更改信息进行影响评分,并检测出升级的第三方库。/n

【技术特征摘要】
1.一种项目第三方库升级异常检测方法,其特征在于,所述方法包括:
获取第三方库列表,并获取各个第三方库的信息;
通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情,并将两个版本的信息对比生成差异对比数据;
利用词法分析技术分析所述差异对比数据获取具体的类更改信息,以及根据具体的类更改信息确定各个第三方库的升级影响数据;
根据各个第三方库的升级影响数据与关联的第三方库数量,对引用升级第三方库的项目进行影响评分并选取预设评分阈值内的第三方库;以及
对处于预设评分阈值内的第三方库的具体的类更改信息进行影响评分,并检测出升级的第三方库。


2.如权利要求1所述的方法,其特征在于,所述获取各个第三方库的信息包括:
遍历获取所述第三方库的类信息;
基于所述类信息,获取所述第三方库的指纹信息、方法信息以及字段信息。


3.如权利要求1所述的方法,其特征在于,所述通过用户上传的项目信息在第三方库中生成项目的最新版本和之前版本的项目依赖快照信息、项目详情包括:
若用户上传项目信息的指纹信息与之前存储的项目指纹信息不一致,则生成所述最新版本的项目依赖快照信息和项目详情。


4.如权利要求1所述的方法,其特征在于,所述将两个版本第三方库的信息对比生成差异数据包括:
若所述两个版本的第三方库的信息发生变更,则遍历第三方库的指纹信息,生成所述差异对比数据。


5.如权利要求1所述的方法,其特征在于,所述利用词法分析技术分析所述差异对比数据获取具体的类更改信息还包括:
利用词法分析技术获取所述第三方库的修改信息。


...

【专利技术属性】
技术研发人员:刘海涛万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:广东;44

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

1