本发明专利技术提供了一种可精确分析制品反向依赖信息的系统,包括代码库模块、构建模块和制品库模块;所述代码库模块包括代码存储模块和代码搜索模块;所述代码存储模块与代码搜索模块连接;所述构建模块包括第一依赖分析模块和构建执行模块;所述第一依赖分析模块与构建执行模块连接,所述构建执行模块与代码存储模块连接;本系统通过内置代码库、构建系统、制品库系统,将制品反向依赖分析的数据源扩展到代码、制品下载日志、构建系统反向依赖分析结果,通过对多种数据源的综合分析及并集运算,彻底解决了当前业界产品获取反向依赖数据不完整,无法从没有构建任务的代码中获取制品的反向依赖信息的缺点,让反向依赖信息完整准确。让反向依赖信息完整准确。让反向依赖信息完整准确。
【技术实现步骤摘要】
一种可精确分析制品反向依赖信息的系统
[0001]本专利技术涉及制品反向依赖分析,具体是一种可精确分析制品反向依赖信息的系统。
技术介绍
[0002]软件工程从诞生以来,已经有了几十年的历史,在这个过程中,软件工程工具的发展也一直在持续。其中,制品库是一个重要的软件工程工具,制品库是用来存储软件研发团队从源码构建出来的产物和构建依赖。对一个软件研发团队来说,获知某个制品被哪些代码依赖,对于排查软件供应链安全、提高交付质量都有着重要意义,这种技术被称之为制品反向依赖分析。
[0003]当前,制品库产品主要是美国的Nexus和以色列Jfrog公司的Artifactory,制品反向依赖分析也主要由这两个产品实现。但是,不管是Nexus还是Artifactory,其都是相对独立的单个制品库产品,导致其在进行制品反向依赖时,必须在第三方构建系统中安装插件,通过获取构建过程中的依赖信息,将依赖信息反向写入制品库。
[0004]现有制品库的反向依赖分析技术,存在如下重要缺点:
[0005](1)需要针对不同的构建系统安装不同插件,当构建系统无法安装插件或者无法回传构建过程中的依赖信息时,现有的制品库就无法获取反向依赖数据。
[0006](2)单纯通过构建插件,获取构建过程中的依赖信息会导致反向依赖数据分析不完整,主要是因为无法从没有构建任务的代码中获取制品的反向依赖信息。
技术实现思路
[0007]本专利技术的目的在于提供一种可精确分析制品反向依赖信息的系统,以解决上述
技术介绍
中提出的问题。
[0008]为实现上述目的,本专利技术提供如下技术方案:
[0009]一种可精确分析制品反向依赖信息的系统,包括代码库模块、构建模块和制品库模块;
[0010]所述代码库模块包括代码存储模块和代码搜索模块;所述代码存储模块与代码搜索模块连接;
[0011]所述构建模块包括第一依赖分析模块和构建执行模块;所述第一依赖分析模块与构建执行模块连接,所述构建执行模块与代码存储模块连接;
[0012]所述制品库模块包括制品存储模块、第二依赖分析模块、下载日志模块和依赖信息管理模块;所述制品存储模块分别与构建执行模块、第二依赖分析模块和下载日志模块连接;所述第二依赖分析模块分别与代码搜索模块、下载日志模块和依赖信息管理模块连接;所述依赖信息管理模块与第一依赖解析模块连接。
[0013]作为本专利技术进一步的方案:所述代码存储模块用于提供当前业界普通代码库的基本功能,包括代码存储、分支版本管理;
[0014]所述代码搜索模块用于提供当前业界普通代码搜索模块的基本功能,包括代码内容索引的建立和检索。
[0015]作为本专利技术进一步的方案:所述第一依赖解析模块用于根据构建任务下载的代码,分析其依赖关系,并将分析后的依赖关系发送给制品库模块中的依赖信息管理模块;
[0016]所述构建执行模块用于具体执行代码构建任务。
[0017]作为本专利技术进一步的方案:所述制品存储模块用于提供当前业界制品库的基本功能,包括制品的存储,版本管理;
[0018]所述第二依赖解析模块用于在制品库接收到新制品时,分析其内部依赖关系,并将制品间的依赖关系存储至依赖信息管理模块;
[0019]所述下载日志模块用于记录每个制品库、每个制品版本的下载日志;
[0020]所述依赖信息管理模块用于记录制品和代码库之间的依赖信息,并向用户提供查询能力。
[0021]作为本专利技术进一步的方案:该系统用于分析出代码和制品的依赖关系,该依赖关系信息的收集包括场景一和场景二;
[0022]场景一是在代码执行构建时,通过构建模块分析出当前执行的代码库和制品的依赖关系;
[0023]场景二是当用户直接向制品库推送制品或者构建模块构建结束生成制品向制品库推送制品时,分析制品的反向依赖信息。
[0024]作为本专利技术进一步的方案:场景一的工作流程包括如下步骤:
[0025]步骤101、用户向代码存储模块提交代码;
[0026]步骤102、代码存储模块向构建执行模块发送代码构建消息并触发构建任务;
[0027]步骤103、构建执行模块向代码存储模块发起代码下载命令,下载当前代码库代码;
[0028]步骤104、调用第一依赖解析模块,对步骤103中下载的代码进行制品和代码库反向依赖信息分析;
[0029]步骤105、将代码库和制品库反向依赖信息分析结果发送至依赖信息管理模块;
[0030]步骤106、构建执行模块根据步骤104中的分析结果,向制品存储模块发送下载请求,下载代码库依赖的制品到构建执行模块,制品包括直接依赖及多级间接依赖;
[0031]步骤107、制品存储模块将制品下载日志和代码库的关联信息存储至下载日志模块;
[0032]步骤108、构建任务结束,构建产生的新制品提交至制品存储模块。
[0033]作为本专利技术进一步的方案:场景二的工作流程包括如下步骤:
[0034]步骤201、用户直接向制品存储模块推送制品;
[0035]步骤202、构建执行模块在构建结束后,将生成的制品推送到制品存储模块;
[0036]步骤203、制品存储模块将制品信息发送至第二依赖解析模块;
[0037]步骤204、第二依赖解析模块调用代码搜索模块,对代码库代码文本进行全局搜索,将所有直接依赖本制品库的代码及其依赖定义信息获取出来,并对其进行解析;
[0038]步骤205、为了让依赖信息更完整,第二依赖解析模块查询场景一步骤107中生成的代码库和制品库的反向依赖信息,并且和204中的信息进行并集运算;
[0039]步骤206、将步骤205中并集运算结果发送至依赖信息管理模块,并且依赖信息管理模块将本信息和场景一中生成的反向依赖信息进行并集运算后对信息进行更新和存储;
[0040]步骤207、用户向依赖信息管理模块查询完整精确的制品和代码库的反向依赖信息。
[0041]与现有技术相比,本专利技术的有益效果是:
[0042]本专利技术通过将现有代码系统(包括源代码存储、搜索、扫描等业界通用功能)、制品库、构建系统进行组装,组成一个新的系统,并通过对源码信息、构建信息、制品库下载历史信息等多种信息进行综合分析,可以实现精确分析制品库反向依赖。解决了当前业界同类产品中,必须依赖第三方构建系统插件,当构建系统无法安装插件或者无法回传构建过程中的依赖信息时,现有的制品库就无法获取反向依赖数据的问题,降低了对第三方系统的依赖。同时,解决了目前的业界同类产品中,单纯通过构建插件,获取构建过程中的依赖信息会导致反向依赖数据分析不完整,无法从没有构建任务的代码中获取制品的反向依赖信息的缺点,让反向依赖信息更完整准确。
[0043]本系统通过内置构建系统、制品库系统,将制品反向依赖获取能力摆脱了对于第三方构建系统的依赖。本系统通过内置代码库、构建系统、制品库系统,将制品反向依赖分析的数据源本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种可精确分析制品反向依赖信息的系统,其特征在于,包括代码库模块、构建模块和制品库模块;所述代码库模块包括代码存储模块和代码搜索模块;所述代码存储模块与代码搜索模块连接;所述构建模块包括第一依赖分析模块和构建执行模块;所述第一依赖分析模块与构建执行模块连接,所述构建执行模块与代码存储模块连接;所述制品库模块包括制品存储模块、第二依赖分析模块、下载日志模块和依赖信息管理模块;所述制品存储模块分别与构建执行模块、第二依赖分析模块和下载日志模块连接;所述第二依赖分析模块分别与代码搜索模块、下载日志模块和依赖信息管理模块连接;所述依赖信息管理模块与第一依赖解析模块连接。2.根据权利要求1所述的一种可精确分析制品反向依赖信息的系统,其特征在于,所述代码存储模块用于提供当前业界普通代码库的基本功能,包括代码存储、分支版本管理;所述代码搜索模块用于提供当前业界普通代码搜索模块的基本功能,包括代码内容索引的建立和检索。3.根据权利要求1所述的一种可精确分析制品反向依赖信息的系统,其特征在于,所述第一依赖解析模块用于根据构建任务下载的代码,分析其依赖关系,并将分析后的依赖关系发送给制品库模块中的依赖信息管理模块;所述构建执行模块用于具体执行代码构建任务。4.根据权利要求1所述的一种可精确分析制品反向依赖信息的系统,其特征在于,所述制品存储模块用于提供当前业界制品库的基本功能,包括制品的存储,版本管理;所述第二依赖解析模块用于在制品库接收到新制品时,分析其内部依赖关系,并将制品间的依赖关系存储至依赖信息管理模块;所述下载日志模块用于记录每个制品库、每个制品版本的下载日志;所述依赖信息管理模块用于记录制品和代码库之间的依赖信息,并向用户提供查询能力。5.根据权利要求1所述的一种可精确分析制品反向依赖信息的系统,其特征在于,该系统用于分析出代码和制品的依赖关系,该依赖关系信息的收集包括场景一和场景二;场景一是在代码执行构建时,通过构建模块分析出当前执行的代码库和制品的...
【专利技术属性】
技术研发人员:刘庆,
申请(专利权)人:北京简单一点科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。