首页> 中国专利> 用于程序包兼容性检测的方法及装置、设备

用于程序包兼容性检测的方法及装置、设备

摘要

本申请涉及计算机技术领域,公开一种用于程序包兼容性检测的方法,包括:获取待应用程序包的第一属性信息;获取目标程序的已应用程序包的第二属性信息;根据第一属性信息与第二属性信息确定待应用程序包与已应用程序包的兼容性。该方法能够获取待应用程序包的第一属性信息和目标程序的已应用程序包的第二属性信息,通过第一属性信息与第二属性信息来确定待应用程序包与已应用程序包的兼容性。能够实现对待应用程序包与已应用程序包的兼容性进行检测。本申请还公开一种用于程序包兼容性检测的装置及设备。

著录项

  • 公开/公告号CN112540775A

    专利类型发明专利

  • 公开/公告日2021-03-23

    原文格式PDF

  • 申请/专利权人 恩亿科(北京)数据科技有限公司;

    申请/专利号CN202011518519.0

  • 发明设计人 郭平平;

    申请日2020-12-21

  • 分类号G06F8/61(20180101);G06F8/71(20180101);G06F11/36(20060101);

  • 代理机构11331 北京康盛知识产权代理有限公司;

  • 代理人陶俊洁

  • 地址 100000 北京市海淀区西小口路66号东升科技园·北领地D-1楼1层136A(东升地区)

  • 入库时间 2023-06-19 10:22:47

说明书

技术领域

本申请涉及计算机技术领域,例如涉及一种用于程序包兼容性检测的方法及装置、设备。

背景技术

目前,在开发新的程序或对程序进行升级时,常常需要借助于待应用的程序包,例如NPM(Node Package Manager,节点包管理器)的第三方包,通过NPM,开发者可以分享或重用代码。而在引入待应用程序包后,如果待应用程序包与已应用程序包不兼容,可能导致程序无法启动,开发者需要重新更换新的待应用程序包,反复这样操作,使得开发者的效率低,增加研发成本。

在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:现有技术无法对待应用程序包与目标程序的已应用程序包的兼容性进行检测。

发明内容

为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

本公开实施例提供了一种用于程序包兼容性检测的方法及装置、设备,以能够对待应用程序包与目标程序的已应用程序包兼容性进行检测。

在一些实施例中,所述方法包括:

获取待应用程序包的第一属性信息;

获取目标程序的已应用程序包的第二属性信息;

根据所述第一属性信息与所述第二属性信息确定所述待应用程序包与所述已应用程序包的兼容性。

在一些实施例中,所述装置包括:处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行如上述的用于程序包兼容性检测的方法。

在一些实施例中,所述设备包括:上述的用于程序包兼容性检测的装置。

本公开实施例提供的用于程序包兼容性检测的方法及装置、设备,可以实现以下技术效果:能够获取待应用程序包的第一属性信息和目标程序的已应用程序包的第二属性信息,通过第一属性信息与第二属性信息来确定待应用程序包与已应用程序包的兼容性。能够实现对待应用程序包与已应用程序包的兼容性进行检测。

以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。

附图说明

一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:

图1是本公开实施例提供的一个用于程序包兼容性检测的方法的示意图;

图2是本公开实施例提供的一个用于程序包兼容性检测的装置的示意图。

具体实施方式

为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。

本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。

除非另有说明,术语“多个”表示两个或两个以上。

本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。

术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。

结合图1所示,本公开实施例提供一种用于程序包兼容性检测的方法,包括:

步骤S101,获取待应用程序包的第一属性信息;

步骤S102,获取目标程序的已应用程序包的第二属性信息;

步骤S103,根据第一属性信息与第二属性信息确定待应用程序包与目标程序的已应用程序包的兼容性。

采用本公开实施例提供的用于程序包兼容性检测的方法,能够获取待应用程序包的第一属性信息和目标程序的已应用程序包的第二属性信息,通过第一属性信息与第二属性信息来确定待应用程序包与已应用程序包的兼容性。能够实现对待应用程序包与已应用程序包的兼容性进行检测。

可选地,目标程序包括系统程序、应用程序等。可选地,待应用程序包为NPM的第三方包。在一些实施例中,在对目标程序进行新增业务的情况下,通过引入与该新增业务匹配的NPM的第三方包来辅助实现对应的功能,则该引入的NPM第三方包即为待应用程序包。例如,在目标程序需要实现统计分析图的展示这个功能的情况下,借助NPM的echarts包来实现统计分析图展示功能,该NPM的echarts包即为待应用程序包。

可选地,第一属性信息为待应用程序包的名称和待应用程序包的版本号,第二属性信息为已应用程序包的名称和已应用程序包的版本号,根据第一属性信息与第二属性信息确定待应用程序包与目标程序的已应用程序包的兼容性,包括:根据待应用程序包的名称与目标程序的已应用程序包的名称确定待应用程序包与目标程序的已应用程序包的兼容性。

可选地,通过待应用程序包的package.json文件,获得待应用程序包的第一属性信息,即待应用程序包的名称和待应用程序包的版本号。可选地,通过目标程序的的package.json文件,获得目标程序的已应用程序包的第二属性信息,即已应用程序包的名称和已应用程序包的版本号。

可选地,根据待应用程序包的名称与目标程序的已应用程序包的名称确定待应用程序包与目标程序的已应用程序包的兼容性,包括:在待应用程序包的名称与目标程序的已应用程序包的名称相同的情况下,根据待应用程序包的版本号与目标程序的已应用程序包的版本号确定待应用程序包与已应用程序包的兼容性。

可选地,根据待应用程序包的版本号与目标程序的已应用程序包的版本号确定待应用程序包与目标程序的已应用程序包的兼容性,包括:判断待应用程序包的版本号是否满足预设条件;在待应用程序包的版本号满足预设条件的情况下,则确定待应用程序包与目标程序的已应用程序包兼容;或,在待应用程序包的版本号不满足预设条件的情况下,则确定待应用程序包与目标程序的已应用程序包不兼容。这样,在待应用程序包安装到目标程序之前,能够通过待应用程序包的第一属性信息和目标程序的已应用程序包的第二属性信息获得待应用程序包与目标程序的已应用程序包的兼容性,便于用户直接将与目标程序的已应用程序包兼容的待应用程序包安装到目标程序中,从而提高程序开发时引入待应用程序包的效率。

可选地,预设条件,包括:待应用程序包的版本号在目标程序的已应用程序包所对应的版本号范围内。可选地,版本号范围包括:大于或等于预设版本号,或,小于或等于预设版本号。

在一些实施例中,待应用程序包的名称与目标程序的已应用程序包的名称相同,目标程序的已应用程序包所对应的版本号范围为小于或等于预设版本号;而待应用程序包的版本号为小于或等于预设版本号的情况下,确定待应用程序包与目标程序的已应用程序包兼容。例如,名称为node的目标程序的已应用程序包对应的版本号范围为等于V8.0.0,而名称为node的待应用程序包的版本号为V8.0.0,则确定待应用程序包node与目标程序的已应用程序包node兼容。

在一些实施例中,待应用程序包的名称与目标程序的已应用程序包的名称相同,目标程序的已应用程序包所对应的版本号范围为大于或等于预设版本号,而待应用程序包的版本号为小于预设版本号的情况下,确定待应用程序包与目标程序的已应用程序包不兼容。例如,名称为node的已应用程序包对应的版本号范围为大于或等于V8.0.0,名称为node的待应用程序包的版本号为V7.0.0,则确定待应用程序包node与目标程序的已应用程序包node不兼容。

在待应用程序包的名称与目标程序已应用程序包的名称相同的情况下,通过待应用程序包的版本号和目标程序已应用程序包的版本号来确定待应用程序包与已应用程序包的兼容性。能够实现对待应用程序包与已应用程序包的兼容性进行检测。

可选地,根据待应用程序包的名称与已应用程序包的名称确定待应用程序包与已应用程序包的兼容性,包括:在待应用程序包的名称与目标程序所有的已应用程序包的名称都不相同的情况下,则确定待应用程序包与已应用程序包兼容。这样,待应用程序包的名称与目标程序中所有已应用程序包的名称都不相同,则该待应用程序包不会对目标程序产生影响,即待应用程序包与目标程序所有的已应用程序包兼容。

可选地,根据第一属性信息与第二属性信息确定待应用程序包与已应用程序包的兼容性后,还包括:向用户反馈检测结果。可选地,检测结果包括待应用程序包与目标程序的已应用程序包兼容,或,待应用程序包与目标程序已应用程序包不兼容。这样,便于用户在安装待应用程序包之前了解当前检测的待应用程序包的兼容性,避免将与目标程序的已应用程序包不兼容的待应用程序包安装到目标程序中,造成目标程序在上线后出现问题。

可选地,在待应用程序包的版本号不满足预设条件的情况下,还包括:向用户反馈失败原因和/或调整建议;失败原因和/或调整建议根据待应用程序包的版本号获得。可选地,调整建议根据目标程序中已应用程序包的版本号获得。例如,将目标程序中已应用程序包对于的版本号范围作为调整建议。这样,便于用户了解当前检测的待应用程序包的不兼容的原因,并根据调整建议能够选择兼容的待应用程序包进行安装,为用户节省了时间,提高用户在引入待应用程序包的效率。

在一些实施例中,名称为node的目标程序的已应用程序包对应的版本号范围为等于V8.0.0,名称为node的待应用程序包的版本号为V10.13.0,则确定待应用程序包node与目标程序的已应用程序包node不兼容;反馈检测结果:待应用程序包node与目标程序的已应用程序包node不兼容;反馈失败原因:待应用程序包node的版本过高;反馈调整建议:版本号为V8.0.0的待应用程序包node。

可选地,调用浏览器,将检测结果、失败原因和调整建议以图像的形式向用户反馈。这样,通过以图像的形式展示检测结果、失败原因和调整建议,便于用户更容易理解。

在实际应用中,目标程序中有多个已应用程序包的情况下,待应用程序包需要与所有应用程序包都兼容,才能被安装到目标程序中。本公开实施例提供一种用于程序包兼容性检测的方法,包括:获取待应用程序包的名称和版本号;获取目标程序的所有已应用程序包。判断待应用程序包的名称与目标程序的各已应用程序包的名称是否相同;若待应用程序包的名称与目标程序的第i个已应用程序包的名称相同;则判断待应用程序包的版本号是否在目标程序的第i个已应用程序包对应的版本号范围内,若是,则待应用程序包与目标程序的第i个已应用程序包兼容,并继续判断待应用程序包的版本号是否在目标程序中与其名称相同的其他已应用程序包对应的版本号范围内,若待应用程序包的版本号在目标程序中所有与其名称相同的已应用程序包对应的版本号范围内,则确定待应用程序包与目标程序的所有已应用程序包兼容,并反馈检测结果为待应用程序包与目标程序的已应用程序包兼容。若待应用程序包的名称与目标程序的第i个已应用程序包的名称相同,但待应用程序包的版本号没有在目标程序的第i个已应用程序包对应的版本号范围内,例如,待应用程序包的版本号高于该已应用程序包对应的版本号范围,则待应用程序包与目标程序的第i个已应用程序包不兼容,并反馈检测结果为待应用程序包与目标程序的已应用程序包不兼容;同时反馈失败原因为待应用程序包版本过高,和,反馈调整建议为该已应用程序包对应的版本号。若待应用程序包的名称与目标程序的所有已应用程序包的名称都不相同,则确定待应用程序包与目标程序的所有已应用程序包兼容,并反馈检测结果为待应用程序包与目标程序的已应用程序包兼容。通过待应用程序包的名称和版本号与目标程序中已应用程序包的名称和版本号对待应用程序包的兼容性进行检测,使得在将待应用程序包安装到目标程序之前获得其与目标程序中已应用程序包的兼容性,便于用户直接将与目标程序的已应用程序包兼容的待应用程序包安装到目标程序中,节省用户安装待应用程序包的时间,提高了研发时的效率。并且避免将与目标程序的已应用程序包不兼容的待应用程序包安装到目标程序中,造成目标程序在上线后出现问题。

结合图2所示,本公开实施例提供一种用于程序包兼容性检测的装置,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的用于程序包兼容性检测的方法。

此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于程序包兼容性检测的方法。

存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。

采用本公开实施例提供的用于程序包兼容性检测的装置,能够获取待应用程序包的第一属性信息和目标程序的已应用程序包的第二属性信息,通过第一属性信息与第二属性信息来确定待应用程序包与已应用程序包的兼容性。能够实现对待应用程序包与已应用程序包的兼容性进行检测。

本公开实施例提供了一种设备,包含上述的用于程序包兼容性检测的装置。该设备能够获取待应用程序包的第一属性信息和目标程序的已应用程序包的第二属性信息,通过第一属性信息与第二属性信息来确定待应用程序包与已应用程序包的兼容性。能够实现对待应用程序包与已应用程序包的兼容性进行检测。

可选地,设备包括计算机、服务器等。

本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行上述用于程序包兼容性检测的方法。

本公开实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述用于程序包兼容性检测的方法。

上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。

本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。

本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号