分析开源组件各版本间兼容性的方法技术

技术编号:39665190 阅读:9 留言:0更新日期:2023-12-11 18:28
本发明专利技术涉及组件兼容性分析技术领域,揭露了一种分析开源组件各版本间兼容性的方法

【技术实现步骤摘要】
分析开源组件各版本间兼容性的方法、装置、设备及介质


[0001]本专利技术涉及组件兼容性分析
,尤其涉及一种分析开源组件各版本间兼容性的方法

装置

设备及介质


技术介绍

[0002]在开源组件成为全球趋势的今天,开源组件的升级不可避免,由于升级框架和组件往往会导致兼容性的问题以及安全性问题,针对开源组件各版本间是否存在兼容性问题成为亟待解决的问题

[0003]目前
SCA(
软件成分分析
)
产品均可以识别出项目中存在的开源组件漏洞,其修复建议大部分都是推荐升级版本,然而却缺乏对升级版本与当前版本之间兼容性的判断,或只能简单的根据版本号差异
(
如是否跨越大版本
1.0.12.0.1
即跨大版本
)
来判断兼容性,无法做到
API(Application Programming Interface,
应用程序编程接口
)
和依赖级别的兼容性判断,导致开源组件版本间兼容性的判断不够全面


技术实现思路

[0004]本专利技术提供一种分析开源组件各版本间兼容性的方法

装置

设备及介质,其主要目的在于解决开源组件不同版本间兼容性分析时全面性较差的问题

[0005]为实现上述目的,本专利技术提供的一种分析开源组件各版本间兼容性的方法,包括:获取预构建的开源组件的源码知识库,从源码知识库中提取开源组件的不同版本组件的目标源码文件;对目标源码文件进行版本解析,得到不同版本组件的版本依赖信息以及不同版本组件对应的程序接口方法;根据版本依赖信息以及程序接口方法构建不同版本组件的兼容版本表;对兼容版本表中的兼容信息进行一致性校验,根据一致性校验的结果确定不同版本组件之间的兼容性结果

[0006]本专利技术还提供一种分析开源组件各版本间兼容性的装置,包括:目标源码文件提取模块,用于获取预构建的开源组件的源码知识库,从源码知识库中提取开源组件的不同版本组件的目标源码文件;源码文件解析模块,用于对目标源码文件进行版本解析,得到不同版本组件的版本依赖信息以及不同版本组件对应的程序接口方法;兼容版本表构建模块,用于根据版本依赖信息以及程序接口方法构建不同版本组件的兼容版本表;兼容性结果分析模块,用于对兼容版本表中的兼容信息进行一致性校验,根据一致性校验的结果确定不同版本组件之间的兼容性结果

[0007]本专利技术还提供一种电子设备,电子设备包括:与至少一个处理器通信连接的存储器;其中,处理器用于执行存储在存储器上的计算机程序;存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行上述的分析开源组件各版本间兼容性的方法

[0008]本专利技术还提供一种计算机可读存储介质,存储有计算机程序,其特征在于,计算机程序被处理器执行时,实现上述任意一项的分析开源组件各版本间兼容性方法

[0009]本专利技术实施例提出了一种分析开源组件各版本间兼容性的方法,通过解析不同版本组件的目标源码文件,能够得到每个版本组件中所包含的所有依赖信息以及程序接口方法,进而能够全面的对开源组件的不同版本进行兼容性分析;通过版本依赖信息以及程序接口方法构建不同版本组件的兼容版本表,能够减小存储空间,同时提高一致性校验的效率;通过兼容版本表中的兼容信息进行一致性校验的结果确定兼容性结果,能够根据版本依赖信息以及程序接口方法全面快速地进行兼容性分析,实现兼容性分析的全面性

因此本专利技术提出的分析开源组件各版本间兼容性的方法

装置

设备及介质,可以解决分析开源组件各版本间兼容性时全面性的问题

附图说明
[0010]图1为本专利技术一实施例提供的分析开源组件各版本间兼容性的方法的流程示意图;
[0011]图2为本专利技术一实施例提供的构建不同版本组件的兼容版本表的流程示意图;
[0012]图3为本专利技术一实施例提供的分析开源组件各版本间兼容性的装置的功能模块图;
[0013]图4为本专利技术一实施例提供的实现分析开源组件各版本间兼容性的方法的电子设备的结构示意图

[0014]本专利技术目的的实现

功能特点及优点将结合实施例,参照附图做进一步说明

具体实施方式
[0015]应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术

[0016]本申请实施例提供一种分析开源组件各版本间兼容性的方法

分析开源组件各版本间兼容性的方法的执行主体包括但不限于服务端

终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种

换言之,分析开源组件各版本间兼容性的方法可以由安装在终端设备或服务端设备的软件或硬件来执行,软件可以是区块链平台

服务端包括但不限于:单台服务器

服务器集群

云端服务器或云端服务器集群等

服务器可以是独立的服务器,也可以是提供云服务

云数据库

云计算

云函数

云存储

网络服务

云通信

中间件服务

域名服务

安全服务

内容分发网络
(Content Delivery Network

CDN)、
以及大数据和人工智能平台等基础云计算服务的云服务器

[0017]参照图1所示,为本专利技术一实施例提供的分析开源组件各版本间兼容性的方法的流程示意图

[0018]S1、
获取预构建的开源组件的源码知识库,从源码知识库中提取开源组件的不同版本组件的目标源码文件

[0019]在一个实施例中,源码知识库中包括需要进行开源组件兼容性分析的开源组件各个版本的源码包数据,具体地,可以根据开源组件公开的数据网站,例如
mvnrepository、aliyun maven
仓库等数据网站中获取开源组件的源码知识库

[0020]在一个实施例中,从源码知识库中提取开源组件的不同版本组件的目标源码文件,包括:根据开源组件确定不同版本组件的组件唯一标识;根据组件唯一标识从源码知识库中提取不同版本组件对应的目标源码文件

[0021]在一个实施例中,组件唯一标识可以是需要进行兼容性对比的开源组件的版本号,通过版本唯一标识确定不同版本组件在源码知识库中的源码信息,进而通过版本唯一标识再源码知本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种分析开源组件各版本间兼容性的方法,其特征在于,所述方法包括:获取预构建的开源组件的源码知识库,从所述源码知识库中提取所述开源组件的不同版本组件的目标源码文件;对所述目标源码文件进行版本解析,得到所述不同版本组件的版本依赖信息以及所述不同版本组件对应的程序接口方法;根据所述版本依赖信息以及所述程序接口方法构建所述不同版本组件的兼容版本表;对所述兼容版本表中的兼容信息进行一致性校验,根据所述一致性校验的结果确定所述不同版本组件之间的兼容性结果
。2.
如权利要求1所述的分析开源组件各版本间兼容性的方法,其特征在于,所述从所述源码知识库中提取所述开源组件的不同版本组件的目标源码文件,包括:根据所述开源组件确定所述不同版本组件的组件唯一标识;根据所述组件唯一标识从所述源码知识库中提取所述不同版本组件对应的目标源码文件
。3.
如权利要求1所述的分析开源组件各版本间兼容性的方法,其特征在于,所述对所述目标源码文件进行版本解析,得到所述不同版本组件的版本依赖信息以及所述不同版本组件对应的程序接口方法,包括:利用预设的依赖函数解析所述目标源码文件对应的依赖信息,根据所述依赖信息确定所述不同版本组件的版本依赖信息;将所述目标源码文件中的代码转换为抽象语法树,遍历所述抽象语法树,得到所述不同版本组件的程序接口方法
。4.
如权利要求3所述的分析开源组件各版本间兼容性的方法,其特征在于,所述遍历所述抽象语法树,得到所述不同版本组件的程序接口方法,包括:利用预设的解析规则遍历所述抽象语法树每个层级的节点,得到所述抽象语法树的语法元素;对所述语法元素进行方法识别,得到所述不同版本组件的程序接口方法
。5.
如权利要求1所述的分析开源组件各版本间兼容性的方法,其特征在于,所述根据所述版本依赖信息以及所述程序接口方法构建所述不同版本组件的兼容版本表,包括:根据所述版本依赖信息以及所述程序接口方法构建所述不同版本组件的组件表;查找每个所述版本组件的所述版本依赖信息以及所述程序接口方法在所述组件表中的列表序列;根据所述列表序...

【专利技术属性】
技术研发人员:朱良文万振华王颉李华董燕汪杰
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

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

1