基于缓存的数据集成的构建方法与构建系统技术方案

技术编号:23851284 阅读:16 留言:0更新日期:2020-04-18 08:47
本发明专利技术涉及计算机信息技术领域,公开了一种基于缓存的数据集成的构建方法与构建系统。所述构建方法包括:基于预设的构建任务的项目信息与所述构建任务所涉及的数据的提交信息,生成针对所述构建任务的数据的编译包的指纹信息;将所述数据的编译包的指纹信息与缓存库中的缓存包的指纹信息进行比对;以及在所述数据的编译包的指纹信息与所述缓存库中的特定缓存包的指纹信息相匹配的情况下,将所述特定缓存包复制到与所述构建任务相应的构建产物目录下。本发明专利技术可避免代码分支集成过程中的相同代码重复编译过程,从而提高研发过程中的代码集成效率。

Construction method and system of data integration based on cache

【技术实现步骤摘要】
基于缓存的数据集成的构建方法与构建系统
本专利技术涉及计算机信息
,具体地涉及一种基于缓存的数据集成的构建方法与构建系统。
技术介绍
在技术研发过程中,涉及到代码开发、编译、测试、部署、交付等多个流程环节。因此,在研发过程中通常使用一些能将上述流程环节做管道化的工具平台来帮助进行自动处理。同时,在规范化的流程体系中,涉及到不同分支的代码版本管理与集成。对于不同的环境,对应不同的代码分支,在当前环境下编译测试通过的分支合并进入到下一个环节的分支中进行同样的流程处理。而在很多情况下,这些分支在合并的过程中代码本身并不会发生变化,因此相同的代码重复的环节造成的是效率的浪费。目前,对于上述研发过程,通常采用基于Java开发的一种持续集成工具jenkins作为相应的持续集成工具,该工具对于每一次集成过程,都需要经历整个代码的拉取、编译、打包等环节,故集成效率低。
技术实现思路
本专利技术的目的是提供一种基于缓存的数据集成的构建方法与构建系统,其可避免代码分支集成过程中的相同代码重复编译过程,从而提高研发过程中的代码集成效率。为了实现上述目的,本专利技术一方面提供一种基于缓存的数据集成的构建方法,该构建方法包括:基于预设的构建任务的项目信息与所述构建任务所涉及的数据的提交信息,生成针对所述构建任务的数据的编译包的指纹信息;将所述数据的编译包的指纹信息与缓存库中的缓存包的指纹信息进行比对;以及在所述数据的编译包的指纹信息与所述缓存库中的特定缓存包的指纹信息相匹配的情况下,将所述特定缓存包复制到与所述构建任务相应的构建产物目录下。优选地,所述生成针对所述构建任务的数据的编译包的指纹信息包括:基于所述预设的构建任务的项目信息,生成编译器的指纹信息;基于所述构建任务所涉及的数据的提交信息,生成所述数据所处目录的指纹信息;以及将所述编译器的指纹信息及所述数据所处目录的指纹信息组合为所述数据的编译包的指纹信息。优选地,所述生成编译器的指纹信息包括:采用消息摘要算法对所述项目信息中的编译命令进行处理,以获取所述编译命令的信息摘要;以及从所述编译命令的信息摘要中截取第一预设长度的文本,并将所述第一预设长度的文本作为所述编译器的指纹信息。优选地,所述生成所述数据所处目录的指纹信息包括:采用安全哈希算法对所述提交信息中的提交标识进行处理,以获取所述数据所处目录的树标识;以及从所述数据所处目录的树标识中截取第二预设长度的文本,并将所述第二预设长度的文本作为所述数据所处目录的指纹信息。优选地,该构建方法还包括:在所述数据的编译包的指纹信息与所述缓存库中的任一缓存包的指纹信息均不匹配的情况下,执行以下操作:构建所述数据的编译包;将所构建的编译包复制到所述构建产物目录下;计算所构建的编译包的指纹信息;以及以所述编译包的指纹信息对该编译包进行命名,并将命名后的编译包缓存到所述缓存库中。优选地,该构建方法还包括:统计指纹信息相匹配的次数和指纹信息相匹配所对应的构建过程所花费的时间;统计指纹信息不匹配的次数和指纹信息不匹配所对应的构建过程所花费的时间;基于所统计的指纹信息相匹配的次数和指纹信息相匹配所对应的构建过程所花费的时间与指纹信息不匹配的次数和指纹信息不匹配所对应的构建过程所花费的时间,计算因指纹信息相匹配所节省的构建所述数据的编译包的平均时间;以及基于所统计的指纹信息相匹配的次数与指纹信息不匹配的次数,计算缓存命中率。本专利技术第二方面提供一种基于缓存的数据集成的构建系统,该构建系统包括:生成装置,用于基于预设的构建任务的项目信息与所述构建任务所涉及的数据的提交信息,生成针对所述构建任务的数据的编译包的指纹信息;比对装置,用于将所述数据的编译包的指纹信息与缓存库中的缓存包的指纹信息进行比对;以及缓存装置,用于在所述数据的编译包的指纹信息与所述缓存库中的特定缓存包的指纹信息相匹配的情况下,将所述特定缓存包复制到与所述构建任务相应的构建产物目录下。优选地,所述生成装置包括:第一生成模块,用于基于所述预设的构建任务的项目信息,生成编译器的指纹信息;第二生成模块,用于基于所述构建任务所涉及的数据的提交信息,生成所述数据所处目录的指纹信息;以及组合模块,用于将所述编译器的指纹信息及所述数据所处目录的指纹信息组合为所述数据的编译包的指纹信息。优选地,所述第一生成模块包括:信息摘要获取单元,用于采用消息摘要算法对所述项目信息中的编译命令进行处理,以获取所述编译命令的信息摘要;以及第一生成单元,用于从所述编译命令的信息摘要中截取第一预设长度的文本,并将所述第一预设长度的文本作为所述编译器的指纹信息。优选地,所述第二生成模块包括:树标识获取单元,用于采用安全哈希算法对所述提交信息中的提交标识进行处理,以获取所述数据所处目录的树标识;以及第二生成单元,用于从所述数据所处目录的树标识中截取第二预设长度的文本,并将所述第二预设长度的文本作为所述数据所处目录的指纹信息。优选地,该构建系统还包括:构建装置,用于在所述数据的编译包的指纹信息与所述缓存库中的任一缓存包的指纹信息均不匹配的情况下,执行以下操作:构建所述数据的编译包;将所构建的编译包复制到所述构建产物目录下;计算所构建的编译包的指纹信息;以及以所述编译包的指纹信息对该编译包进行命名,并将命名后的编译包缓存到所述缓存库中。优选地,该构建系统还包括:第一统计装置,用于统计指纹信息相匹配的次数和指纹信息相匹配所对应的构建过程所花费的时间;第二统计装置,用于统计指纹信息不匹配的次数和指纹信息不匹配所对应的构建过程所花费的时间;第一计算装置,用于基于所统计的指纹信息相匹配的次数和指纹信息相匹配所对应的构建过程所花费的时间与指纹信息不匹配的次数和指纹信息不匹配所对应的构建过程所花费的时间,计算因指纹信息相匹配所节省的构建所述数据的编译包的平均时间;以及第二计算装置,用于基于所统计的指纹信息相匹配的次数与指纹信息不匹配的次数,计算缓存命中率。通过上述技术方案,本专利技术创造性地通过预设的构建任务的项目信息与所述构建任务所涉及的数据的提交信息,生成针对该构建任务的数据的编译包的指纹信息,然后将生成的所述编译包的指纹信息与缓存库中的缓存包的指纹信息进行比对,若与某缓存包的指纹信息匹配,则将该缓存包直接复制到与所述构建任务相应的构建产物目录下,可避免代码分支集成过程中的相同代码重复编译过程,从而提高研发过程中的代码集成效率。本专利技术第三方面提供一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器执行所述的基于缓存的数据集成的构建方法。本专利技术第四方面提供一种处理器,用于运行程序,其中,所述程序被运行时用于执行如上所述的基于缓存的数据集成的构建方法。本专利技术的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本专利技术,但并不构成对本专利技术的限制。在附图中:图1是本专利技术一实施例提供的基于缓存的本文档来自技高网...

【技术保护点】
1.一种基于缓存的数据集成的构建方法,其特征在于,该构建方法包括:/n基于预设的构建任务的项目信息与所述构建任务所涉及的数据的提交信息,生成针对所述构建任务的数据的编译包的指纹信息;/n将所述数据的编译包的指纹信息与缓存库中的缓存包的指纹信息进行比对;以及/n在所述数据的编译包的指纹信息与所述缓存库中的特定缓存包的指纹信息相匹配的情况下,将所述特定缓存包复制到与所述构建任务相应的构建产物目录下。/n

【技术特征摘要】
1.一种基于缓存的数据集成的构建方法,其特征在于,该构建方法包括:
基于预设的构建任务的项目信息与所述构建任务所涉及的数据的提交信息,生成针对所述构建任务的数据的编译包的指纹信息;
将所述数据的编译包的指纹信息与缓存库中的缓存包的指纹信息进行比对;以及
在所述数据的编译包的指纹信息与所述缓存库中的特定缓存包的指纹信息相匹配的情况下,将所述特定缓存包复制到与所述构建任务相应的构建产物目录下。


2.根据权利要求1所述的基于缓存的数据集成的构建方法,其特征在于,所述生成针对所述构建任务的数据的编译包的指纹信息包括:
基于所述预设的构建任务的项目信息,生成编译器的指纹信息;
基于所述构建任务所涉及的数据的提交信息,生成所述数据所处目录的指纹信息;以及
将所述编译器的指纹信息及所述数据所处目录的指纹信息组合为所述数据的编译包的指纹信息。


3.根据权利要求2所述的基于缓存的数据集成的构建方法,其特征在于,所述生成编译器的指纹信息包括:
采用消息摘要算法对所述项目信息中的编译命令进行处理,以获取所述编译命令的信息摘要;以及
从所述编译命令的信息摘要中截取第一预设长度的文本,并将所述第一预设长度的文本作为所述编译器的指纹信息。


4.根据权利要求2所述的基于缓存的数据集成的构建方法,其特征在于,所述生成所述数据所处目录的指纹信息包括:
采用安全哈希算法对所述提交信息中的提交标识进行处理,以获取所述数据所处目录的树标识;以及
从所述数据所处目录的树标识中截取第二预设长度的文本,并将所述第二预设长度的文本作为所述数据所处目录的指纹信息。


5.根据权利要求1所述的基于构建缓存的数据集成的构建方法,其特征在于,该构建方法还包括:
在所述数据的编译包的指纹信息与所述缓存库中的任一缓存包的指纹信息均不匹配的情况下,执行以下操作:
构建所述数据的编译包;
将所构建的编译包复制到所述构建产物目录下;
计算所构建的编译包的指纹信息;以及
以所述编译包的指纹信息...

【专利技术属性】
技术研发人员:李思嘉
申请(专利权)人:贝壳技术有限公司
类型:发明
国别省市:天津;12

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

1