掌桥专利:专业的专利平台
掌桥专利
首页

一种组件间依赖关系的检测方法、装置及设备

文献发布时间:2023-06-19 19:33:46


一种组件间依赖关系的检测方法、装置及设备

技术领域

本发明涉及计算机技术领域,尤其涉及一种组件间依赖关系的检测方法、装置及设备。

背景技术

目前的组件开发过程中,各组件均存储在服务器上,方便组件开发端取用。在开发过程中,可能组件A中嵌入另一个组件B的功能,此时这组件A和组件B之间将存在单向依赖关系,当组件B进行版本更迭后,可能会影响组件A的功能,因此组件A也需要进行更新。服务器会通知组件A的开发端更新组件A,但在组件A的开发端从服务器上获取或接收到更迭后的组件B后,可能不会立即更新组件A,导致旧版本的组件A仍在使用,若更迭的组件B中修复了较多的问题或修改了某些功能,若旧版本的组件A不进行更迭,则将逐渐增加版本之间的差异,若组件的引用关系复杂,则很难形成组件间闭环的依赖关系检测,这是组件开发中普遍面临的问题。但目前没有较好的组件间依赖关系的检测方法。

现在亟需一种组件间依赖关系的检测方法,从而解决现有技术中很难形成组件间闭环的依赖关系检测的问题。

发明内容

为解决现有技术中的问题,本发明实施例提供了一种组件间依赖关系的检测方法、装置及设备,实现了组件间闭环的依赖关系检测,从而保证各组件的版本差异符合要求。

为了解决上述技术问题,本发明的具体技术方案如下:

一方面,本发明实施例提供了一种组件间依赖关系的检测方法,包括,

判断待开发组件中多个嵌入组件是否包括相同的子组件;

若存在相同子组件,则获取所述多个嵌入组件各自对应的所述子组件的版本范围;

确定多个所述版本范围之间的交集;

从所述交集中任选一版本号对应的组件作为待更新子组件,利用所述待更新子组件更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

进一步地,在从所述交集中任选一版本号对应的子组件之前,所述方法还包括,

判断所述待开发组件中已存储的所述子组件的版本号是否属于所述交集;

若否,则从所述交集中任选一版本号对应的组件待更新子组件,用以更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

进一步地,所述方法还包括,

若所述待开发组件中已存储的所述子组件的版本号属于所述交集,则不再更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

进一步地,若待开发组件中多个嵌入组件不包括相同的子组件,所述方法还包括,

分别获取每个嵌入组件对应的子组件的版本范围;

从所述嵌入组件对应的子组件的版本范围中任选一版本号对应的组件作为该嵌入组件对应的待更新子组件,利用该嵌入组件对应的待更新子组件更新所述待开发组件中已存储的该嵌入组件对应的子组件。

进一步地,利用该嵌入组件对应的待更新子组件更新所述待开发组件中已存储的该嵌入组件对应的子组件之后,所述方法还包括,

获取与所述待更新子组件的版本号对应的嵌入组件的版本范围;

从所述嵌入组件的版本范围中任选一版本号对应的组件作为待更新嵌入组件;

利用所述待更新嵌入组件更新所述待开发组件中与该待更新子组件所更新的子组件对应的嵌入组件。

进一步地,所述方法还包括,获取与所述待更新子组件的版本号对应的所述嵌入组件的版本范围;

从所述嵌入组件的版本范围中任选一版本号对应的嵌入组件作为待更新嵌入组件,利用所述待更新嵌入组件更新所述待开发组件中与该待更新子组件所更新的子组件对应的嵌入组件。

进一步地,判断待开发组件中多个嵌入组件是否包括相同的子组件之前,所述方法还包括,

确定所述待开发组件中不包括子组件的嵌入组件;

判断该不包括子组件的嵌入组件是否与所述待开发组件中其他嵌入组件所包括的子组件相同;

若是,则从所述交集中任选一版本号对应的子组件作为待更新子组件之后,所述方法还包括,

利用所述待更新子组件更新所述待开发组件中对应的所述不包括子组件的嵌入组件。

进一步地,若该不包括子组件的嵌入组件不与所述待开发组件中其他嵌入组件所包括的子组件相同,所述方法还包括,

获取该嵌入组件的最新版本号对应的嵌入组件作为待更新嵌入组件;

利用所述待更新嵌入组件更新所述待开发组件中的该不包括子组件的嵌入组件。

进一步地,所述方法还包括,

若所述待开发组件中不包括嵌入组件,则直接根据业务需求开发所述待开发组件。

进一步地,所述嵌入组件包括多层子组件;

判断待开发组件中多个嵌入组件是否包括相同的子组件进一步包括,

判断一个嵌入组件的每层子组件是否与其他嵌入组件的全部层子组件是否相同。

进一步地,判断待开发组件中多个嵌入组件是否包括相同的子组件的步骤是在更新所述待开发组件的任一个嵌入组件时发起的。

进一步地,获取所述多个嵌入组件各自对应的所述子组件的版本范围进一步包括,

根据获取到的更新的所述嵌入组件的组件信息确定该嵌入组件对应的子组件的版本范围。

另一方面,本发明实施例还提供了一种组件间依赖关系的检测装置,包括,

相同子组件判断单元,用于判断待开发组件中多个嵌入组件是否包括相同的子组件;

子组件版本范围获取单元,用于在存在相同子组件时,则获取所述多个嵌入组件各自对应的所述子组件的版本范围;

交集确定单元,用于确定多个所述版本范围之间的交集;

子组件更新单元,用于从所述交集中任选一版本号对应的组件作为待更新子组件,利用所述待更新子组件更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

另一方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在存储器上的计算机程序,处理器执行所述计算机程序时实现上述的方法。

另一方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,计算机程序被计算机设备的处理器运行时,执行上述的方法。

最后,本发明还提供一种计算机程序产品,所述计算机程序产品被计算机设备的处理器运行时,执行根据上述所述方法的指令。

在本发明实施例中,待开发组件中可以嵌入多个嵌入组件,每个嵌入组件也可以嵌入其他的组件,嵌入组件中嵌入的组件为子组件,在子组件更新后,嵌入组件也可能需要更新,从而适应更新后的子组件的版本范围,每个嵌入组件中的子组件的版本范围可能不同,待开发组件中需要存储嵌入组件以及子组件,因此在开发组件时,为了避免更新的子组件不能适用于所有包括该子组件的嵌入组件,本发明实施例判断待开发组件中多个嵌入组件是否包括相同的子组件,若存在相同的子组件,则获取多了个嵌入组件各自对应的子组件的版本范围,然后再确定多个版本范围之间的交集,即交集所对应的版本范围中的任意一个版本号对应的子组件适用于这些嵌入组件,因此从交集中任选一版本号对应的组件作为待更新子组件,利用待更新子组件更新待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件,从而使得嵌入组件能够利用更新后的子组件的功能进行自身的功能,待开发组件也就能够利用嵌入组件的功能完成自身业务功能的开发,避免了待开发组件更新后的子组件不适用于对应的嵌入组件,实现了组件间的闭环依赖检测,解决了现有技术中很难形成组件间闭环的依赖关系检测的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1所示为本发明实施例一种组件间依赖关系的检测方法实施系统示意图;

图2所示为本发明实施例一种组件间依赖关系的检测方法的流程图;

图3所示为本发明实施中若待开发组件中多个嵌入组件不包括相同的子组件的处理过程;

图4所示为本发明实施例中在待开发组件的多个嵌入组件中不包括相同子组件的情况下,更新嵌入组件的过程;

图5所示为本发明实施中更新待开发组件中不包括子组件的嵌入组件的过程;

图6所示为本发明实施例一种组件间依赖关系的检测装置的结构示意图;

图7所示为本发明实施例计算机设备的结构示意图。

【附图标记说明】:

101、第一开发端;

102、第二开发端;

103、第三开发端;

104、第四开发端;

105、第五开发端;

106、组件存储服务器;

601、相同子组件判断单元;

602、子组件版本范围获取单元;

603、交集确定单元;

604、子组件更新单元;

702、计算机设备;

704、处理设备;

706、存储资源;

708、驱动机构;

710、输入/输出模块;

712、输入设备;

714、输出设备;

716、呈现设备;

718、图形用户接口;

720、网络接口;

722、通信链路;

724、通信总线。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示为本发明实施例一种组件间依赖关系的检测方法实施系统示意图,可以包括第一开发端101、第二开发端102、第三开发端103、第四开发端104、第五开发端105以及组件存储服务器106。第一开发端101、第二开发端102、第三开发端103、第四开发端104、第五开发端105均能够与组件存储服务器106之间建立通信连接,实现数据的交互。

每个开发端均开发各自的组件,并将开发好的组件上传至组件存储服务器106进行存储,以便于其他开发端利用自己开发的组件。一个开发端开发的组件中也可能嵌入了多个开发端的组件。

示例性地,第二开发端102用于开发第二组件,在第二开发端102更新第二组件后,将第二组件上传至组件存储服务器106,组件存储服务器106对第二组件进行存储。第一开发端101用于开发第一组件,第一组件中嵌入了第二开发端102开发的第二组件,在第二组件更新后,第一开发端可以根据自身的业务需求或第二开发端102的强制更新命令更新嵌入的第二组件。例如:

第二组件的版本号1.0能够实现第二组件的基本业务功能a、b和c,将版本号1.0的第二组件上传至组件存储服务器106进行存储,但版本号1.0的第二组件存在较多的问题,第二开发端102为了修复第二组件中的问题,更新了第二组件,生成版本号1.1的第二组件并上传至组件存储服务器106进行存储,第二开发端102在第二组件中又增加了新的业务功能d,生成版本号1.2的第二组件,并将版本号1.2的第二组件上传至组件存储服务器10进行存储,此时组件存储服务器106中存储了版本号1.0-1.2的第二组件;

第一开发端101开发的第一组件需要利用第二组件的业务功能a和b,因此第一开发端101最初将版本号1.0的第二组件嵌入到自己的第一组件中,得到版本号2.0的第一组件,并将版本号2.0的第一组件上传至组件存储服务器106进行存储。在第二组件更新后(版本号1.1和版本号1.2),因为版本号1.1的第二组件修复了许多问题,因此第二开发端102可以强制要求所有嵌入第二组件的开发端更新其开发的组件中嵌入的第二组件,因此第一开发端需要更新第一组件中嵌入的第二组件,生成版本号2.1的第一组件并上传至组件存储服务器106进行存储。因为第一开发端101开发的第一组件的业务功能中不需要第二组件的业务功能d,因此第一开发端101不需要将版本号为2.1的第一组件中嵌入的版本号1.1的第二组件更新为版本号1.2的第二组件。

第四开发端104开发第四组件,第四组件的业务功能中需要利用第二组件的业务功能d,因此第四开发端104最初将版本号1.2的第二组件嵌入到自己的第四组件中,得到版本号4.0的第四组件,并将版本号4.0的第四组件上传至组件存储服务器106进行存储。

第三开发端103开发第三组件,第三组件的业务功能中需要利用第一组件的业务功能以及第四组件的业务功能,按照组件开发要求,第三开发端103需要将第一组件、第二组件以及第四组件存储在本地。第三开发端103可以毫无疑义地向组件存储服务器106获取版本号2.1的第一组件,并获取版本号4.0的第四组件,但因为还需要获取第二组件,组件存储服务器106中存储版本号1.0-1.2的第二组件,因此第三开发端103并不知道获取哪个版本号的第二组件,有可能获取的第二组件不能适用于第一组件和第四组件。

第三开发端103在向组件存储服务器106获取第一组件时,还可以提供组件的应用场景,组件存储服务器106判断第三开发端103提供的组件应用场景是否符合所要获取的第一组件的应用要求,若不符合,则不向第三开发端103提供第一组件。组件存储服务器106还可以根据第三开发端103提供的组件应用场景确定符合要求的组件,将该组件发送给第三开发端103进行使用。

在第三开发端103获取到第一组件之后,还可以进一步确定第三开发端103开发的第三组件中是否真正嵌入了第一组件,即第三组件是否真正使用了第一组件的功能,若是,则会记录第三组件和第一组件之间的依赖关系,若第三组件未真正嵌入第一组件,例如第三组件的代码中仅仅声明了第一组件的接口函数,但并未调用,则不会记录第三组件和第一组件之间的依赖关系,这种情况下,若第三组件被第五开发端105获取到,第五开发端105开发的第五组件需要嵌入第三组件,在第五开发端105获取到第三组件时,不需要判断第三组件嵌入的第一组件的版本号。

需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括其他应用环境,在本发明实施例中不做限制。

导致上述问题的根因是现有技术中难以形成组件间闭环的依赖关系检测。为了解决该问题,本发明实施例提供了一种组件间依赖关系的检测方法,实现了组件间闭环的依赖关系检测,从而保证各组件的版本差异符合要求。图2所示为本发明实施例一种组件间依赖关系的检测方法的流程图,在本图中描述了对组件间依赖关系进行检测的过程,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体地,如图2所示,所述方法可以包括:

步骤201:判断待开发组件中多个嵌入组件是否包括相同的子组件;

步骤202:若存在相同子组件,则获取所述多个嵌入组件各自对应的所述子组件的版本范围;

步骤203:确定多个所述版本范围之间的交集;

步骤204:从所述交集中任选一版本号对应的组件作为待更新子组件,利用所述待更新子组件更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

在本发明实施例中,待开发组件中可以嵌入多个嵌入组件,每个嵌入组件也可以嵌入其他的组件,嵌入组件中嵌入的组件为子组件,在子组件更新后,嵌入组件也可能需要更新,从而适应更新后的子组件的版本范围,每个嵌入组件中的子组件的版本范围可能不同,待开发组件中需要存储嵌入组件以及子组件,因此在开发组件时,为了避免更新的子组件不能适用于所有包括该子组件的嵌入组件,本发明实施例判断待开发组件中多个嵌入组件是否包括相同的子组件,若存在相同的子组件,则获取多了个嵌入组件各自对应的子组件的版本范围,然后再确定多个版本范围之间的交集,即交集所对应的版本范围中的任意一个版本号对应的子组件适用于这些嵌入组件,因此从交集中任选一版本号对应的组件作为待更新子组件,利用待更新子组件更新待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件,从而使得嵌入组件能够利用更新后的子组件的功能进行自身的功能,待开发组件也就能够利用嵌入组件的功能完成自身业务功能的开发,避免了待开发组件更新后的子组件不适用于对应的嵌入组件,实现了组件间的闭环依赖检测,解决了现有技术中很难形成组件间闭环的依赖关系检测的问题。

可以理解为,嵌入组件的范围和子组件的版本范围的对应关系可以是嵌入组件与子组件的依赖关系,将依赖关系写入到嵌入组件的依赖关系文件中,在待开发组件获取到某个版本号的嵌入组件后,可以根据嵌入组件的依赖关系文件确定需要获取哪个版本号的子组件。

根据发明的一个实施例,判断待开发组件中多个嵌入组件是否包括相同的子组件的步骤是在更新所述待开发组件的任一个嵌入组件时发起的。

可以理解为,在开发待开发组件时,需要获取待开发组件嵌入的一个或多个嵌入组件,此外还需要获取嵌入组件所嵌入的子组件,将嵌入组件和子组件均存储在本地后,方能利用嵌入组件的业务功能开发待开发组件的业务功能,也能保证嵌入组件在执行业务功能时,能够利用子组件的业务功能。因此,本发明实施例中在获取嵌入组件时,判断待开发组件中多个嵌入组件(其中包括本次获取到的嵌入组件以及本地已经存储的嵌入组件)是否包括相同的子组件,若存在相同的子组件,则获取多个嵌入组件各自对应的依赖关系文件,从而根据依赖关系文件确定子组件的版本范围,然后再确定多个版本范围之间的交集,从交集中任选一版本号对应的组件作为待更新子组件,利用待更新子组件更新待开发组件中已存储的子组件。

在本发明的一些其他实施例中,也可以在嵌入组件更新之后,通知待开发组件的开发端更新该嵌入组件,在这个过程中,执行本说明书图2的方法。

需要说明的是,待开发组件可以是尚未开发的组件,也可以是需要在原有的组件基础上进行更新的组件,若待开发组件是需要进行更新的组件,本领域技术人员也可能够根据本说明书实施例记载的方法直接得出需要进行更新的组件完成更新嵌入组件以及子组件的过程,此处不再赘述。

进一步地,获取所述多个嵌入组件各自对应的所述子组件的版本范围进一步包括,

根据获取到的更新的所述嵌入组件的组件信息确定该嵌入组件对应的子组件的版本范围。

在本发明实施例中,嵌入组件的依赖关系文件可以存储在嵌入组件的组件信息中,应,可以根据嵌入组件的组件信息中的依赖关系文件确定该嵌入组件对应的子组件的版本范围。

在本发明实施例中,可能待开发组件本地存储的子组件的版本号已经属于确定的交集,在这种情况下,待开发组件不需要更新该子组件。因此,根据本发明的一个实施例,在从所述交集中任选一版本号对应的子组件之前,所述方法还包括,

判断所述待开发组件中已存储的所述子组件的版本号是否属于所述交集;

若否,则从所述交集中任选一版本号对应的组件待更新子组件,用以更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

进一步地,若所述待开发组件中已存储的所述子组件的版本号属于所述交集,则不再更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

在本发明实施例中,若待开发组件中已经存储的子组件的版本号属于该交集,则不需要更新该子组件,若不属于该交集,则更新该子组件,从而避免子组件的重复更新,降低开发待开发组件的工作量。

在本发明实施例中,也可能待开发组件嵌入的多个嵌入组件中没有嵌入相同的子组件,这样也就不存在更新子组件的版本号不适用于对应的多个嵌入组件的问题,因此,根据本发明的一个实施例,如图3所示,若待开发组件中多个嵌入组件不包括相同的子组件,所述方法还包括,

步骤301:分别获取每个嵌入组件对应的子组件的版本范围;

步骤302:从所述嵌入组件对应的子组件的版本范围中任选一版本号对应的组件作为该嵌入组件对应的待更新子组件,利用该嵌入组件对应的待更新子组件更新所述待开发组件中已存储的该嵌入组件对应的子组件。

在本发明实施例中,若待开发组件中多个嵌入组件不包括相同的子组件,则从每个嵌入组件对应的子组件的版本范围中任选一个版本号对应的组件进行更新即可。

在本发明实施例中,除了更新子组件之外,还需要更新嵌入组件,更新嵌入组件的动作可以是待开发组件的开发端主动发起的,因此在确定子待更新子组件之后,还需要确定更新哪个版本号的嵌入组件。因此为了保证更新的嵌入组件的业务功能能够正常运行,根据本发明的一个实施例,如图4所示,利用该嵌入组件对应的待更新子组件更新所述待开发组件中已存储的该嵌入组件对应的子组件之后,所述方法还包括,

步骤401:获取与所述待更新子组件的版本号对应的嵌入组件的版本范围;

步骤402:从所述嵌入组件的版本范围中任选一版本号对应的组件作为待更新嵌入组件;

步骤403:利用所述待更新嵌入组件更新所述待开发组件中与该待更新子组件所更新的子组件对应的嵌入组件。

在本发明实施例中,在待开发组件的多个嵌入组件中不包括相同子组件的情况下,更新哪个版本号的子组件只需要根据嵌入组件对应子组件的版本范围确定,因此在更新嵌入组件时,更新的嵌入组件的版本号也应当与更新的子组件的版本号相对应,因此,获取与待更新子组件的版本号对应的嵌入组件的版本范围,然后从嵌入组件的版本范围中任选一版本号对应的组件作为待更新嵌入组件,最后利用待更新嵌入组件更新待开发组件中与该待更新子组件所更新的子组件对应的嵌入组件。从而保证更新的嵌入组件的版本号与更新的子组件的版本号能够相互对应,即更新的嵌入组件的功能能够正常运行。

在这种情况下,嵌入组件的依赖关系文件中就包括了嵌入组件的版本范围和子组件的版本范围的对应关系。

在本发明的一些其他实施例中,若待开发组件的多个嵌入组件包括相同的子组件,则这些待开发组件的版本号就需要根据更新的子组件的版本号确定,因此,获取与所述待更新子组件的版本号对应的所述嵌入组件的版本范围;

从所述嵌入组件的版本范围中任选一版本号对应的嵌入组件作为待更新嵌入组件,利用所述待更新嵌入组件更新所述待开发组件中与该待更新子组件所更新的子组件对应的嵌入组件。

在本发明的一个实施例中,待开发组件的嵌入组件中也可能未包括子组件,即该嵌入组件是原生组件,并未利用其他组件的业务功能,但这个嵌入组件可能是其他嵌入组件的子组件,因此在更新这种嵌入组件时,还需要考虑其他嵌入组件对应的子组件的版本范围。针对上述情况,根据本发明的一个实施例,如图5所示,判断待开发组件中多个嵌入组件是否包括相同的子组件之前,所述方法还包括,

步骤501:确定所述待开发组件中不包括子组件的嵌入组件;

步骤502:判断该不包括子组件的嵌入组件是否与所述待开发组件中其他嵌入组件所包括的子组件相同;

若是,则从所述交集中任选一版本号对应的子组件作为待更新子组件之后,所述方法还包括,

步骤503:利用所述待更新子组件更新所述待开发组件中对应的所述不包括子组件的嵌入组件。

在本发明实施例中,首先确定待开发组件中不包括子组件的嵌入组件,然后判断该嵌入组件是否与待开发组件中其他嵌入组件包括的子组件相同,若相同,则说明该嵌入组件的版本不能随意更新,因为更新之后的版本可能不适用于嵌入它的嵌入组件。因此,若相同,则从交集中任选一个版本号对应子组件作为待更新子组件更新子组件之后,还利用这个待更新子组件更新这个嵌入组件。

在本发明实施例中,也可能这个不包括子组件的嵌入组件不与其他嵌入组件的子组件相同,则直接更新该嵌入组件即可,不需要考虑其他的嵌入组件,因此,根据本发明的一个实施例,若该不包括子组件的嵌入组件不与所述待开发组件中其他嵌入组件所包括的子组件相同,所述方法还包括,

获取该嵌入组件的最新版本号对应的嵌入组件作为待更新嵌入组件;

利用所述待更新嵌入组件更新所述待开发组件中的该不包括子组件的嵌入组件。

根据本发明的一个实施例,若待开发组件中不包括嵌入组件,则说明待开发组件是原生组件,直接根据业务需开发待开发组件即可,最后将开发的组件发送直组件存储服务器进行存储,以便于其他组件嵌入该组件。

根据本发明的一个实施例,所述嵌入组件包括多层子组件;

判断待开发组件中多个嵌入组件是否包括相同的子组件进一步包括,

判断一个嵌入组件的每层子组件是否与其他嵌入组件的全部层子组件是否相同。

在本发明实施例中,多层子组件指的是嵌入组件直接嵌入的子组件中还包括子组件,这时候上层子组件也可以认为是嵌入组件,只不过不是待开发组件直接嵌入的,而是待开发组件嵌入的组件直接嵌入的。为了确保在子组件更新后,每个嵌入组件都能够正常运行,因此本发明实施例判断一个嵌入组件的每层子组件是否与其他嵌入组件的全不曾子组件是否相同,若相同,则确定其交集,然后从交集中选择一个组件作为待更新子组件进行更新。

本说明书举下面较佳实施例,结合图1所示的实施系统本发明实施例的方法进行举例说明。

首先,第三开发端103向组件存储服务器106发送第一组件的获取请求,所述第一组件用于嵌入到待版本更迭的第三组件中;

接收所述组件存储服务器106发送的第一组件以及所述第一组件的依赖关系文件,所述第一组件是第一开发端101开发的,所述第一组件中嵌入了第二开发端102的第二组件,所述第一组件的依赖关系文件包括所述第一组件的版本号范围和所述第二组件的版本号范围的对应关系;

所述第三组件还嵌入了第四开发端104开发的第四组件,所述第四组件也嵌入了所述第二组件,在进行第三组件的版本更迭时,根据接收到的第一组件的依赖关系文件和本地存储的第二组件的版本号判断本地存储的第二组件是否需要更新,在需要更新的情况下,根据本地存储的第四组件的依赖文件和第一组件的依赖关系文件确定更新的第二组件版本号,并向所述组件存储服务器106发送更新的第二组件版本号;

接收所述组件存储服务器106发送的与所述更新的第二组件版本号对应的第二组件;

根据接收到的第二组件、本地存储的第一组件和第四组件进行第三组件的版本更迭。

然后第三开发端103将第三组件发送至组件存储服务器106进行存储。

当第五开发端105对第五组件进行版本更迭时,向组件存储服务器106发送第三组件的获取请求,所述第三组件用于嵌入到待版本更迭的第五组件中,所述第五组件还嵌入了第一开发端101发的第一组件,所述第三组件还嵌入了第一组件,所述第一组件嵌入了第二开发端102开发的第二组件;

接收所述组件存储服务器106发送的所述第三组件、所述第三组件的依赖关系文件以及第一组件的依赖关系文件,所述第三组件的依赖关系包括第三组件的版本号范围和第一组件的版本号范围的对应关系,所述第一组件的依赖关系文件包括第一组件的版本号范围和第二组件的版本号范围的对应关系;

在进行第五组件的版本更迭时,根据所述第三组件的依赖关系文件和本地存储的第一组件的版本号判断本地存储的第一组件是否需要更新,并根据所述第一组件的依赖关系文件和本地存储的第二组件的版本号判断本地存储的第二组件是否需要更新。

基于同一发明构思,本发明实施例还提供了一种组件间依赖关系的检测装置,如图6所示,包括,

相同子组件判断单元601,用于判断待开发组件中多个嵌入组件是否包括相同的子组件;

子组件版本范围获取单元602,用于在存在相同子组件时,则获取所述多个嵌入组件各自对应的所述子组件的版本范围;

交集确定单元603,用于确定多个所述版本范围之间的交集;

子组件更新单元604,用于从所述交集中任选一版本号对应的组件作为待更新子组件,利用所述待更新子组件更新所述待开发组件中已存储的与存在相同子组件的多个嵌入组件对应的子组件。

通过上述装置所取得的有益效果与上述方法所取得的有益效果一致,本说明书实施例不做赘述。

如图7所示为本发明实施例计算机设备的结构示意图,本发明中的装置可以为本实施例中的计算机设备,执行上述本发明的方法。计算机设备702可以包括一个或多个处理设备704,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储资源706,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储资源706可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储资源都可以使用任何技术来存储信息。进一步地,任何存储资源可以提供信息的易失性或非易失性保留。进一步地,任何存储资源可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理设备704执行被存储在任何存储资源或存储资源的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储资源交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。

计算机设备702还可以包括输入/输出模块710(I/O),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口(GUI)718。在其他实施例中,还可以不包括输入/输出模块710(I/O)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。

通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。

对应于图2至图5中的方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述步骤。

本发明实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图2至图5所示的方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品被计算机设备的处理器运行时,执行根据如图2至图5所示的方法。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

还应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以意识到,结合本发明中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120115952969