发明内容
基于此,有必要针对上述问题,提供一种能够使可视化显示各模块之间的依赖关系且版本升级时自动定位连带模块的多模块版本依赖关系构建方法、装置、服务器和存储介质。
一种多模块版本依赖关系构建方法,所述方法包括:
接收多个模块终端上传的版本信息,所述版本信息包括模块版本标识、与其他模块的模块版本标识之间的依赖关系以及所述依赖关系对应的依赖详情信息;
以每个模块为独立节点,每个所述独立节点中包括至少一个子节点,每个所述子节点对应一个所述模块版本标识,以所述模块版本标识之间的依赖关系为有向边构建版本依赖网络图,其中,所述有向边关联对应的所述依赖详情信息;
监测所述模块终端发布的版本更新动态,提取所述版本更新动态中携带的版本修改描述信息;
在所述版本依赖网络图中确定与所述版本更新动态对应的独立节点,查找与所述独立节点所连接的所有所述有向边并获取查找的所述有向边对应的依赖详情信息;
对比获取的所述依赖详情信息与所述版本修改描述信息,生成有向边修改策略,所述有向边修改策略包括修改已有有向边和/或生成新的有向边;
根据所述有向边修改策略更新所述版本依赖网络图,并将更新的所述版本依赖网络图推送至与本次修改相关的所述模块终端。
在一个实施例中,在所述对比获取的所述依赖详情信息与所述版本修改描述信息,生成有向边修改策略,所述有向边修改策略包括修改已有有向边和/或生成新的有向边的步骤之后,还包括:
将生成的所述有向边修改策略推送至发布所述版本更新动态的所述模块终端,以使所述模块终端对所述有向边修改策略进行确认;
当接收到所述模块终端发送的确定指令后,执行所述根据所述有向边修改策略更新所述版本依赖网络图,并将更新的所述版本依赖网络图推送至与本次修改相关的所述模块终端的步骤。
在一个实施例中,所述方法还包括:
判断所述版本修改描述信息中是否携带有升级版本标识,若是,则在所述版本依赖关系网络图中相应的所述独立节点处增加与所述升级版本标识对应的子节点。
在一个实施例中,所述对比获取的所述依赖详情信息与所述版本修改描述信息,生成有向边修改策略,所述有向边修改策略包括修改已有有向边和/或生成新的有向边的步骤包括:
依次将所述版本修改描述信息与查找的每个所述有向边对应的所述依赖详情信息进行对比,判断本次修改是否涉及对所述依赖详情信息中记录的依赖部分的修改,若是,则根据对比结果删除已有所述有向边和/或修改已有所述有向边对应的依赖详情信息;并判断对已有有向边的修改是否使所述已有所述有向边对应的依赖关系不稳定,若是,则向不稳定的所述有向边对应的所述模块终端发送提醒信息;
和/或根据对比结果生成新的有向边以及对应的依赖详情信息。
在一个实施例中,所述方法还包括:根据所述版本依赖关系图生成每个模块的依赖关系子图,并将生成的所述依赖关系子图推送至相应的所述模块终端显示。
一种多模块版本依赖关系构建装置,所述装置包括:
信息接收模块,用于接收多个模块终端上传的版本信息,所述版本信息包括模块版本标识、与其他模块的模块版本标识之间的依赖关系以及所述依赖关系对应的依赖详情信息;
依赖网络图构建模块,用于以每个模块为独立节点,每个所述独立节点中包括至少一个子节点,每个所述子节点对应一个所述模块版本标识,以所述模块版本标识之间的依赖关系为有向边构建版本依赖网络图,其中,所述有向边关联对应的所述依赖详情信息;
动态监听模块,用于监测所述模块终端发布的版本更新动态,提取所述版本更新动态中携带的版本修改描述信息;
依赖详情信息查找模块,用于在所述版本依赖网络图中确定与所述版本更新动态对应的独立节点,查找与所述独立节点所连接的所有所述有向边并获取查找的所述有向边对应的依赖详情信息;
修改策略生成模块,用于对比获取的所述依赖详情信息与所述版本修改描述信息生成有向边修改策略,所述有向边修改策略包括修改已有有向边和/或生成新的有向边;
依赖网络图更新和推送模块,用于根据所述有向边修改策略更新所述版本依赖网络图,并将更新的所述版本依赖网络图推送至与本次修改相关的所述模块终端。
在一个实施例中,所述装置还包括:
升级版本子节点增加模块,用于判断所述版本修改描述信息中是否携带有升级版本标识,若是,则在所述版本依赖关系网络图中相应的所述独立节点处增加与所述升级版本标识对应的子节点。
在一个实施例中,所述修改策略生成模块,还用于依次将所述版本修改描述信息与查找的每个所述有向边对应的所述依赖详情信息进行对比,判断本次修改是否涉及对所述依赖详情信息中记录的依赖部分的修改,若是,则根据对比结果删除已有所述有向边和/或修改已有所述有向边对应的依赖详情信息;并判断对已有有向边的修改是否使所述已有所述有向边对应的依赖关系不稳定,若是,则向不稳定的所述有向边对应的所述模块终端发送提醒信息;
和/或根据对比结果生成新的有向边以及对应的依赖详情信息。
一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述方法的步骤。
上述多模块版本依赖关系构建方法、装置、服务器和存储介质,由负责模块升级和运维的模块终端上传其所管理模块的版本信息,包括模块版本标识、各模块版本之间的依赖关系以及对应的依赖详情信息。服务器收集模块终端上传的这些信息构建版本依赖网络图,以图形可视化的形式显示各模块版本之间的依赖关系;此外,构建的版本依赖关系图也是进行版本升级管理的基础查询库,根据监测到的版本更新动态与版本依赖关系图中依赖详情信息判断当前版本升级所带来的依赖关系的变更或者新的有向边的生成,以不断更新该版本依赖关系图,并将更新的版本依赖关系图推送至与本次更新具有连带关系的模块终端,以使相应的模块终端能够及时清晰的获知具有关联的模块的版本更改情况,第一时间做出相应的处理。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提供了一种多模块版本依赖关系构建方法的应用环境图,该应用环境图包括模块终端110和服务器120。模块终端110可通过网络与服务器120通信。模块终端110可以是智能手机、平板电脑、笔记本电脑中的至少一种,但并不局限于此。服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。
如图2所示,在一个实施例中,提供了一种服务器,该服务器120包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器120的非易失性存储介质存储有操作系统和计算机可执行指令,该计算机可执行指令被处理器执行时用于实现适用于服务器120的一种多模块版本依赖关系构建方法。该处理器用于提供计算和控制能力,支撑整个服务器的运行。服务器120中的内存储器为非易失性存储介质中的操作系统和计算机可执行指令的运行提供环境,该服务器120的网络接口用于与模块终端110进行网络通信。
本领域技术人员可以理解,图2中示出的服务器的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提供了一种多模块版本依赖关系构建方法,该方法以应用到如图2所示的服务器中为例进行说明,具体包括如下步骤:
步骤S202:接收多个模块终端上传的版本信息,版本信息包括模块版本标识、与其他模块的模块版本标识之间的依赖关系以及依赖关系对应的依赖详情信息。
本实施例涉及的是用于管理多模块APP系统的各模块版本升级时所涉及的多模块版本依赖关系构建方法,其实质是构建可视化的版本依赖网络图。
APP系统包括多个模块,每个模块独立进行编译,每个模块对应一个模块终端。该模块终端用于统计相应模块的版本信息,并将统计的版本信息上传至服务器。这里的版本信息包括该模块在历史时刻所发布过的模块版本标识,每个模块版本与其他模块版本之间的依赖关系以及依赖详情信息。
上述的模块版本标识包括模块标识和版本号,如A1.0,A代表模块A,1.0代表为版本号。不同模块版本之间的依赖关系为不同模块间的调用关系,如库调用(人脸识别库调用)、配置调用、接口调用等。如A1.0在实现模块的相应功能时调用了B1.0的一个或者多个功能接口(如支付接口),则A1.0依赖B1.0,被调用的接口即为两个模块之间的关联接口。依赖详情信息即详细记录的具有依赖关系的两个模块版本之间的依赖信息,包括依赖的内容(如关联的接口),依赖内容在主动依赖方(如上述的A1.0)和被动依赖方(如上述的B1.0)中的位置描述等任何能够描述量各模块版本之间的依赖关系的信息。
步骤S204:以每个模块为独立节点,每个独立节点中包括至少一个子节点,每个子节点对应一个模块版本标识,以模块版本标识之间的依赖关系为有向边构建版本依赖网络图,其中,有向边关联对应的依赖详情信息。
服务器根据接收的各模块的版本信息,首先,为每个模块构建一个对应的独立节点,为模块下的多个模块版本,如A1.0,A1.1,A2.0等构建子节点。然后根据各模块版本间的依赖关系生成有向边,有向边连接两个相互依赖的模块版本,有向边的箭头指向主动依赖方,如A1.0→B1.0表示B1.0依赖A1.0。最后,使生成的有向边关联对应的依赖详情信息,如A1.0→B1.0之间的有向边关联A1.0和B1.0之间的依赖详情信息,进而完成了版本依赖网络图的构建,如图4所示。需要说明的是,各版本之间的依赖关系不限于图示所示,所有合理的依赖关系均可以通过上述方式以版本依赖网络图的形式显示出来。
在一个实施例中,如图4所示,当版本依赖网络图中的有向边被触发时,将显示该有向边对应的依赖详情信息。
步骤S206:监测模块终端发布的版本更新动态,提取版本更新动态中携带的版本修改描述信息。
服务器对各模块终端的版本更新动态进行监控并根据模块终端的版本更新动态获取版本修改描述信息。
服务器可通过如下两种方式获取模块终端的版本更新动态。其一是服务器按照设定的路径抓紧模块终端定时更新的版本修改文档,解析该文档以获取版本修改描述信息。其二是服务器获取模块终端上传的版本更新动态,以获取到相应的版本修改描述信息。
版本修改描述信息包括对已有版本的修改的描述和/或发布的新版本的描述。当为对已有版本的修改时,对应的版本修改内容包括修改的模块版本标识、修改的内容以及修改描述。当为新版本发布时,对应的版本修改描述信息为新版本相对比最接近的历史版本的修改内容和修改描述,以及增加的功能和增加功能的描述。
步骤S208:在版本依赖网络图中确定与版本更新动态对应的独立节点,查找与独立节点所连接的所有有向边并获取查找的有向边对应的依赖详情信息。
服务器可通过提取发布版本更新动态的模块终端标识确定该版本更新动态所针对的模块,或者根据版本修改描述信息以及修改描述信息涉及到的修改版本标识如A1.2,也可以进一步确认获取的版本更新动态所针对的模块,进而在版本依赖网络图中定位到相应的独立节点。服务器获取由该独立节点引出的所有有向边以及这些有向边所对应的依赖详情信息。
举例来说,如图4所示,模块终端A发布了关于模块A的版本更新动态,如对模块版本A1.1进行了修改或者试发布了升级版本A1.2。根据获取的版本更新动态,服务器定位到的模块为A模块,由图示可知与A模块这一独立节点连接的有向边有三条,包括B2.0依赖于A1.1的有向边、C1.0和C1.2依赖于A1.1的有向边。根据连接的有向边可确认与本次版本更新具有连带关系的模块有模块B和模块C。
步骤S210:对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边。
具体的,将版本修改描述信息依次与独立节点连接的每个有向边的依赖详情信息进行对比,以判断修改描述信息中涉及的修改是否有对原有依赖部分的修改,若是,则根据对比结果删除已有所述有向边或修改已有所述有向边对应的依赖详情信息,或者根据对比结果删除一个或者多个已有有向边,同时修改其他有向边对应的依赖详情信息。例如,若修改删除了对关联接口的调用,则删除相应的有向边和其对应的依赖详情信息。若图4所示,对B2.0进行了修改,修改后的B2.0去除了对模块A1.1原有的关联接口的调用,则删除B2.0与A1.1之间的有向边,同时删除该有向边对应的依赖详情信息。修改策略还包括生成新的有向边。
在对已有有向边进行修改后,需要判断修改是否造成了依赖关系的不稳定。若修改的模块版本涉及对依赖部分的修改,造成了相应的有向边所对应的依赖关系不稳定,如被动依赖方修改了关联接口的调用地址,导致主动依赖方的涉及依赖部分的功能无法实现。即该依赖关系不能保证模块功能的正常运行,则向相应的模块终端发送提醒信息,该提醒信息中带有本次修改的修改描述信息和所涉及的有向边标识等信息。在另一个实施例中,还可以对由于修改导致的不稳定的有向边进行标识,如修改相关有向边的颜色或者加粗有向边。举例来说,模块终端A对模块A1.1进行了修改,修改了模块C1.0调用的关联接口a。版本修改描述信息中记录了该修改,当版本修改描述信息与A1.1和C1.0之间的有向边的依赖详情信息进行比对时,确认发生了依赖部分修改,则对A1.1和C1.0之间的有向边进行标识,并将相应的修改描述与该有向边进行关联。当C模块终端接收到更新后的版本依赖网络图时即可通过点击该标识的有向边获知本次修改所造成的接口不匹配问题,以及时做出相应的处理。如模块终端C发布对模块C1.0的弃用指令,根据该弃用指令在版本依赖网络图中删除该模块版本对应的子节点,继而删除该不稳定的有向边。同样的,服务器也会进一步判断该弃用修改是否会连带影响其他模块,并通过信息比对做出相应的修改策略,直至整个版本依赖网络图达到稳定的状态。相应的A模块终端也可以及时获知本次修改由于依赖关系造成的接口不匹配问题,以便进一步对修改进行斟酌确认。
步骤S212:根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端。
服务器通过对比获取的依赖详情信息与本次版本更新动态中涉及的版本修改描述信息,确认是否需要对现有的有向边进行修改或者是否需要增加新的有向边,以根据对比结果生成修改策略,并按照修改策略对版本依赖网络图进行更新。并将更新的版本依赖网路图推送至相关的模块终端显示。这里的相关的模块终端包括发布版本更新动态的模块终端以及与本次修改相关联的其他模块终端,如A模块的版本更新相关联的模块终端为模块终端B和模块终端C。
本实施例中,通过监测到的版本升级信息与版本依赖关系图中相关的依赖信息判断当前版本升级所带来的依赖关系的变更或者新的有向边的生成,以不断更新可视化的版本依赖关系图,并将更新的版本依赖关系图推送至与本次更新具有连带关系的模块终端,以使相应的模块终端能够及时清晰的获知具有关联的模块的版本更改情况,第一时间做出相应的确认和处理。本实施例中实现了对模块间的依赖关系的自动化的管理,管理效率更高,模块间的联动实时性更强,能够在很大程度上较少由于依赖关系导致的不匹配隐患。
在一个实施例中,如图5所示,在步骤S210:在对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边之后,还包括步骤S211:将生成的有向边修改策略推送至发布版本更新动态的模块终端,以使模块终端对生成的有向边修改策略进行确认;当接收到模块终端发送的确定指令后,执行步骤S212:根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端。
本实施例中,增加模块终端的确认环节,可使对版本依赖网络图的修改更加可靠,增加了生成的版本依赖网络图的可靠性。
在一个实施例中,版本更新动态包括已有版本的更改动态或者升级版本发布动态,其中升级版本发布动态包括升级版本标识。当服务器获取的模块终端的更新动态为升级版本发布动态时,根据版本更新动态更新构建的版本依赖网络图的方法为:在版本依赖网络图中确定与该升级版本发布动态对应的独立节点,并在确定的独立节点处增加与升级版本标识对应的子节点。根据升级版本发布动态中的版本升级描述信息获取该升级版本标识对应的子节点的依赖关系,并生成依赖关系对应的有向边。
还可以是,将该升级版本发布动态对应的版本修改描述信息与所属独立节点相连接的有向边的依赖详情信息进行对比,若修改未涉及对相关依赖部分的修改,则低版本的依赖关系可以复制到该发布的高版本上面来。如C模块发布了C2.0,C2.0并未对C1.0对于A1.1的依赖部分进行修改,C2.0同样调用了A1.1中的关联接口,则C2.0与A1.1也存在与C1.0相同的依赖关系,C1.0与A1.1之间的有向边和对应的依赖详情信息可复制到C2.0上面来。在一个实施例中,还可以删除与高版本的有向边重复的低版本的有向边,以简化依赖关系网络图。如对A1.1和C1.0之间的有向边和相应的依赖详情信息进行删除,或者虚化处理,当有向边被虚化的时间超过设定阈值,则对虚化的有向边和相应的依赖详情信息进行删除。
在另一个实施例中,若该升级模块版本不涉及任何新的依赖关系,即没有产生新的调用关系,则对版本依赖网络图的更新仅为增加新的子节点即可。版本升级描述信息包括新版本相对于最接近的历史版本的改进描述,可在新版本与最接近的历史版本之间生成连接边,并建立该连接边与改进描述之间的关联关系。当该连接边被触发时,则显示相应的改进描述,如图6所示。通过这种添加子节点和改进描述的方式,即使新添加的子节点不存在依赖关系,将其加入至依赖网络图中也可使各模块能够及时了解其他模块的版本演进情况,以便利用新的升级版本促进自身模块的版本升级,建立新的依赖关系,不断优化APP功能。
在一个实施例中,随着各模块规模的扩大,各模块版本的不断升级,构建的版本依赖网络图也会越来越庞大,导致服务器和模块终端之间的版本依赖网络图的传输和存储都占用较大的资源,模块终端在庞大的版本依赖网络图中查找与自身相关的依赖关系也会费时费力。本实施例中为解决上述问题采用如下方式,即在每次根据有向边修改策略更新版本依赖网络图后,根据更新的版本依赖关系网络图生成每个模块的依赖关系子图,并将生成得依赖关系子图推送至相应的模块终端显示,其中,生成的模块的依赖关系子图包括该模块对应的独立节点、与该独立节点直接连接独立节点以及独立节点与这些直接连接的独立节点的有向边和这些有向边对应的依赖关系详情。
在另一个实施例中,模块的依赖关系子图还可以包括与对应模块的独立节点间隔独立节点的数量不大于设定数量的独立节点。如间隔独立节点的数量不大于1个,包括直接连接的独立节点(间隔数量为0)和与直接连接的独立节点连接的独立节点(间隔数量为1)。
在一个实施例中,在根据有向边修改策略更新版本依赖网络图后,确认与本次更新相关的模块,仅生成相关模块的依赖关系子图,并将生成的依赖关系子图推送至对应的相关模块终端中。
在一个实施例中,如图7所示,提供了一种多模块版本依赖关系构建装置,装置包括:
信息接收模块302,用于接收多个模块终端上传的版本信息,版本信息包括模块版本标识、与其他模块的模块版本标识之间的依赖关系以及依赖关系对应的依赖详情信息。
依赖网络图构建模块304,用于以每个模块为独立节点,每个独立节点中包括至少一个子节点,每个子节点对应一个模块版本标识,以模块版本标识之间的依赖关系为有向边构建版本依赖网络图,其中,有向边关联对应的依赖详情信息。
动态监听模块306,用于监测模块终端发布的版本更新动态,提取版本更新动态中携带的版本修改描述信息。
依赖详情信息查找模块308,用于在版本依赖网络图中确定与版本更新动态对应的独立节点,查找与独立节点所连接的所有有向边并获取查找的有向边对应的依赖详情信息。
修改策略生成模块310,用于对比获取的依赖详情信息与版本修改描述信息生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边。
依赖网络图更新和推送模块312,用于根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端。
在一个实施例中,如图8所示,多模块版本依赖关系构建装置还包括:
终端确认模块311,用于将生成的有向边修改策略推送至发布版本更新动态的模块终端,以使模块终端对生成的有向边修改策略进行确认。
当接收到模块终端发送的确定指令后,进入网络图更新和推送模块312。
在一个实施例中,如图9所示,多模块版本依赖关系构建装置还包括:
升级版本子节点增加模块402,用于判断版本修改描述信息中是否携带有升级版本标识,若是,则在版本依赖关系网络图中相应的独立节点处增加与升级版本标识对应的子节点。
在一个实施例中,修改策略生成模块310,还用于依次将版本修改描述信息与查找的每个有向边对应的依赖详情信息进行对比,判断本次修改是否涉及对依赖详情信息中记录的依赖部分的修改,若是,则根据对比结果删除已有有向边和/或修改已有有向边对应的依赖详情信息;并判断对已有有向边的修改是否使已有有向边对应的依赖关系不稳定,若是,则向不稳定的有向边对应的模块终端发送提醒信息;
和/或根据对比结果生成新的有向边以及对应的依赖详情信息。
在一个实施例中,如图10所示,多模块版本依赖关系构建装置还包括:依赖关系子图生成模块502,用于根据版本依赖关系图生成每个模块的依赖关系子图,并将生成的依赖关系子图推送至相应的模块终端显示。
在一个实施例中,提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现一下步骤:接收多个模块终端上传的版本信息,版本信息包括模块版本标识、与其他模块的模块版本标识之间的依赖关系以及依赖关系对应的依赖详情信息;以每个模块为独立节点,每个独立节点中包括至少一个子节点,每个子节点对应一个模块版本标识,以模块版本标识之间的依赖关系为有向边构建版本依赖网络图,其中,有向边关联对应的依赖详情信息;监测模块终端发布的版本更新动态,提取版本更新动态中携带的版本修改描述信息;在版本依赖网络图中确定与版本更新动态对应的独立节点,查找与独立节点所连接的所有有向边并获取查找的有向边对应的依赖详情信息;对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边;根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端。
在一个实施例中,处理器在对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边的步骤之后,还执行如下步骤:
将生成的有向边修改策略推送至发布版本更新动态的模块终端,以使模块终端对有向边修改策略进行确认;
当接收到模块终端发送的确定指令后,执行根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端的步骤。
在一个实施例中,处理器还执行如下步骤:判断版本修改描述信息中是否携带有升级版本标识,若是,则在版本依赖关系网络图中相应的独立节点处增加与升级版本标识对应的子节点。
在一个实施例中,处理器执行的对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边的步骤包括:
依次将版本修改描述信息与查找的每个有向边对应的依赖详情信息进行对比,判断本次修改是否涉及对依赖详情信息中记录的依赖部分的修改,若是,则根据对比结果删除已有有向边和/或修改已有有向边对应的依赖详情信息;并判断对已有有向边的修改是否使已有有向边对应的依赖关系不稳定,若是,则向不稳定的有向边对应的模块终端发送提醒信息;
和/或根据对比结果生成新的有向边以及对应的依赖详情信息。
在一个实施例中,处理器还执行如下步骤:根据版本依赖关系图生成每个模块的依赖关系子图,并将生成的依赖关系子图推送至相应的模块终端显示。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:接收多个模块终端上传的版本信息,版本信息包括模块版本标识、与其他模块的模块版本标识之间的依赖关系以及依赖关系对应的依赖详情信息;以每个模块为独立节点,每个独立节点中包括至少一个子节点,每个子节点对应一个模块版本标识,以模块版本标识之间的依赖关系为有向边构建版本依赖网络图,其中,有向边关联对应的依赖详情信息;监测模块终端发布的版本更新动态,提取版本更新动态中携带的版本修改描述信息;在版本依赖网络图中确定与版本更新动态对应的独立节点,查找与独立节点所连接的所有有向边并获取查找的有向边对应的依赖详情信息;对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边;根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端。
在一个实施例中,处理器在对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边的步骤之后,还执行如下步骤:
将生成的有向边修改策略推送至发布版本更新动态的模块终端,以使模块终端对有向边修改策略进行确认;
当接收到模块终端发送的确定指令后,执行根据有向边修改策略更新版本依赖网络图,并将更新的版本依赖网络图推送至与本次修改相关的模块终端的步骤。
在一个实施例中,处理器还执行如下步骤:判断版本修改描述信息中是否携带有升级版本标识,若是,则在版本依赖关系网络图中相应的独立节点处增加与升级版本标识对应的子节点。
在一个实施例中,处理器执行的对比获取的依赖详情信息与版本修改描述信息,生成有向边修改策略,有向边修改策略包括修改已有有向边和/或生成新的有向边的步骤包括:
依次将版本修改描述信息与查找的每个有向边对应的依赖详情信息进行对比,判断本次修改是否涉及对依赖详情信息中记录的依赖部分的修改,若是,则根据对比结果删除已有有向边和/或修改已有有向边对应的依赖详情信息;并判断对已有有向边的修改是否使已有有向边对应的依赖关系不稳定,若是,则向不稳定的有向边对应的模块终端发送提醒信息;
和/或根据对比结果生成新的有向边以及对应的依赖详情信息。
在一个实施例中,处理器还执行如下步骤:根据版本依赖关系图生成每个模块的依赖关系子图,并将生成的依赖关系子图推送至相应的模块终端显示。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。