增量组包方法及装置与流程

文档序号:28077619发布日期:2021-12-18 01:02阅读:170来源:国知局
增量组包方法及装置与流程

1.本发明涉及分布式技术领域,尤其涉及一种增量组包方法及装置。


背景技术:

2.目前增量组包存在以下问题:
3.一是,同名升级的jar包无法比对差异:之前的增量组包通过比对文件的md5值的方式进行比较文件差异性,得出增量文件。但是jar包即便没有做过代码变更,其md5值都会不一样,无法得出变更的jar包清单。
4.二是,不同名的升级jar包由于jar包的版本号不一致,无法识别出是同一个jar包,无法做差异比较,例如sme

service

1.0.jar和me

service

2.0.jar。
5.因此,针对jar包的部署都采取全量清除和全量部署的方式,无法做到增量部署,部署时间耗时长,却比较容易出现问题。
6.因此,目前缺乏一种针对增量组包方法。


技术实现要素:

7.本发明实施例提出一种增量组包方法,用以解决jar包的增量组包问题,该方法包括:
8.比对当前版本和基线版本中的jar包,查找是否有同名的jar包;
9.若不存在同名的jar包,基于不同名的jar包,更新删除jar清单和新增jar清单;
10.若存在同名的jar包,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单;
11.根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。
12.本发明实施例提出一种增量组包装置,用以解决jar包的增量组包问题,该装置包括:
13.同名jar包查找模块,用于比对当前版本和基线版本中的jar包,查找是否有同名的jar包;
14.不同名jar包处理模块,用于若不存在同名的jar包,基于不同名的jar包,更新删除jar清单和新增jar清单;
15.同名jar包处理模块,用于若存在同名的jar包,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单;
16.增量包生成模块,用于根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。
17.本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上
并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述增量组包方法。
18.本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述增量组包方法的计算机程序。
19.在本发明实施例中,比对当前版本和基线版本中的jar包,查找是否有同名的jar包;若不存在同名的jar包,基于不同名的jar包,更新删除jar清单和新增jar清单;若存在同名的jar包,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单;根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。在上述过程中,在遇到与基准版本同名的jar包时,不直接采用比对文件差异,而是将jar包进行解压,比对两个jar包里的所有文件,可实现自动的增量组包,解决了增量组包中由于jar包引起的问题。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
21.图1为本发明实施例中增量组包方法的流程图一;
22.图2为本发明实施例中增量组包方法的流程图二;
23.图3为本发明实施例中增量组包方法的流程图三;
24.图4为本发明实施例中增量组包装置的示意图一;
25.图5为本发明实施例中增量组包装置的示意图二;
26.图6为本发明实施例中增量组包装置的示意图三;
27.图7为本发明实施例中计算机设备的示意图。
具体实施方式
28.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
29.在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本技术的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
30.首先,对本发明实施例中涉及到的术语进行解释。
31.基线版本包:以部署在生产环境上的执行码为基线的版本包,称为基线版本包。
32.增量包:当有需求变更时,需要对生产进行版本升级,而需要增量部署的执行码则称为基于基线的增量包。
33.增量组包:通过当前版本包与基线版本包进行差异比对,保留有变更的或是新增的文件,标记已被删除的文件,并生成差异文件清单,称为增量组包。
34.增量部署:基于差异文件清单,用增量包的文件追加部署到生产环境中,新量的文件直接部署,变更的文件替换原有文件,标记删除的文件在生产环境中进行删除,完成增量部署,完成版本升级。
35.图1为本发明实施例中增量组包方法的流程图一,如图1所示,包括:
36.步骤101,比对当前版本和基线版本中的jar包,查找是否有同名的jar包;若不存在同名的jar包,进入步骤102,若存在同名的jar包,进入步骤103;
37.步骤102,基于不同名的jar包,更新删除jar清单和新增jar清单;
38.步骤103,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单;
39.步骤104,根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。
40.在本发明实施例中,可实现自动的增量组包,解决了增量组包中由于jar包引起的问题。
41.在步骤101中,比对当前版本和基线版本中的jar包,查找是否有同名的jar包。
42.图2为本发明实施例增量组包方法的流程图二,在一实施例中,在比对当前版本和基线版本中的jar包之前,还包括:
43.步骤201,删除当前版本的版本号。
44.在上述实施例中,去掉版本号去查找基准版本中是否存在只有版本号不一样的jar,如有则进行解压,进行差异比较,这样可以解决由于升级版本号变化的问题。
45.在步骤102中,基于不同名的jar包,更新删除jar清单和新增jar清单。
46.在一实施例中,基于不同名的jar包,更新删除jar清单和新增jar清单,包括:
47.若基线版本中存在当前版本中没有的jar包,将所述当前版本没有的jar包记录到删除jar清单中;
48.若当前版本中存在基线版本中没有的jar包,将所述基线版本中没有的jar包记录到新增jar清单中。
49.在上述实施例中,将所述当前版本没有的jar包记录到删除jar清单中后,删除jar总数num1+1;将所述基线版本中没有的jar包记录到新增jar清单中后,新增jar包总数num2+1,统计的总数便于版本核对。
50.在步骤103中,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单。
51.在一实施例中,所述变更jar清单包括删除文件列表、新增文件列表和修改文件列表;
52.比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单,包括:
53.若第二目录中存在第一目录中没有的文件,将所述第一目录中没有的文件记录到删除文件列表中;
54.若第一目录中存在第二目录中没有的文件,将所述第二目录中没有的文件记录到新增文件列表中;
55.若第一目录中和第二目录中存在同名的文件,比较两个同名的文件的md5值,若两个同名的文件的md5值不相等,将第一目录中同名的文件记录到修改文件列表中。
56.在上述实施例中,将所述第一目录中没有的文件记录到删除文件列表中,则该jar包对应的删除文件总数num3+1;将所述第二目录中没有的文件记录到新增文件列表中,则该jar包对应的新增文件总数num4+1;将第一目录中同名的文件记录到修改文件列表中,则该jar包对应的修改文件总数num5+1。
57.在步骤104中,根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。
58.在一实施例中,根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,包括:
59.将新增jar清单中的jar包纳入增量包;
60.若jar包对应的变更jar清单中,删除文件列表、新增文件列表均为空,且修改文件列表中只包括文件pom.properties,确定该jar包为未变更的jar包,忽略该jar包;
61.若jar包对应的变更jar清单中,删除文件列表不为空,或新增文件列表不为空,或修改文件列表中修改文件数不小于2,将该jar包纳入增量包,将该jar包记录至差异jar包清单中。
62.在上述实施例中,修改文件列表中只包括文件pom.properties,只是由于maven构建时间点不一样,生成了不一样的pom.properties,因此该jar包不被纳入差异jar包清单中。将该jar包记录至差异jar包清单中,则差异jar包总数num6+1。
63.图3为本发明实施例增量组包方法的流程图三,在一实施例中,所述方法还包括:
64.步骤301,输出当前版本的增量包、差异jar包清单、删除jar清单和新增jar清单。
65.上述输出还可以包括删除jar总数num1,新增jar总数num2,差异jar包总数num6,以及每个差异jar包中删除文件总数num3、新增文件总数num4、修改文件总数num5,以便于后续核对。
66.综上所述,在本发明实施例提出的方法中,比对当前版本和基线版本中的jar包,查找是否有同名的jar包;若不存在同名的jar包,基于不同名的jar包,更新删除jar清单和新增jar清单;若存在同名的jar包,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单;根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。在上述过程中,在遇到与基准版本同名的jar包时,不直接采用比对文件差异,而是将jar包进行解压,比对两个jar包里的所有文件,可实现自动的增量组包,解决了增量组包中由于jar包引起的问题。
67.本发明还提出一种增量组包装置,其原理与增量组包方法相同,这里不再赘述。
68.图4为本发明实施例中增量组包装置的示意图一,如图4所示,包括:
69.同名jar包查找模块401,用于比对当前版本和基线版本中的jar包,查找是否有同名的jar包;
70.不同名jar包处理模块402,用于若不存在同名的jar包,基于不同名的jar包,更新删除jar清单和新增jar清单;
71.同名jar包处理模块403,用于若存在同名的jar包,解压当前版本中所述同名的jar包,获得第一目录下的文件;解压基线版本中所述同名的jar包,获得第二目录下的文件;比对第一目录下的文件和第二目录下的文件,更新所述同名的jar包对应的变更jar清单;
72.增量包生成模块404,用于根据删除jar清单和新增jar清单、每个同名的jar对应的变更jar清单,对当前版本进行增量组包,生成当前版本的增量包。
73.图5为本发明实施例中增量组包装置的示意图二,在一实施例中,所述装置还包括版本号删除模块501,用于:
74.在比对当前版本和基线版本中的jar包之前,删除当前版本的版本号。
75.在一实施例中,不同名jar包处理模块具体用于:
76.若基线版本中存在当前版本中没有的jar包,将所述当前版本没有的jar包记录到删除jar清单中;
77.若当前版本中存在基线版本中没有的jar包,将所述基线版本中没有的jar包记录到新增jar清单中。
78.在一实施例中,所述变更jar清单包括删除文件列表、新增文件列表和修改文件列表;
79.同名jar包处理模块具体用于:
80.若第二目录中存在第一目录中没有的文件,将所述第一目录中没有的文件记录到删除文件列表中;
81.若第一目录中存在第二目录中没有的文件,将所述第二目录中没有的文件记录到新增文件列表中;
82.若第一目录中和第二目录中存在同名的文件,比较两个同名的文件的md5值,若两个同名的文件的md5值不相等,将第一目录中同名的文件记录到修改文件列表中。
83.在一实施例中,增量包生成模块具体用于:
84.将新增jar清单中的jar包纳入增量包;
85.若jar包对应的变更jar清单中,删除文件列表、新增文件列表均为空,且修改文件列表中只包括文件pom.properties,确定该jar包为未变更的jar包,忽略该jar包;
86.若jar包对应的变更jar清单中,删除文件列表不为空,或新增文件列表不为空,或修改文件列表中修改文件数不小于2,将该jar包纳入增量包,将该jar包记录至差异jar包清单中。
87.图6为本发明实施例中增量组包装置的示意图三,在一实施例中,所述装置还包括输出模块601,用于:
88.输出当前版本的增量包、差异jar包清单、删除jar清单和新增jar清单。
89.本发明的实施例还提供一种计算机设备,图7为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的增量组包方法中全部步骤,所述计算机设备具体包括如下内容:
90.处理器(processor)701、存储器(memory)702、通信接口(communications interface)703和通信总线704;
91.其中,所述处理器701、存储器702、通信接口703通过所述通信总线704完成相互间的通信;所述通信接口703用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;
92.所述处理器701用于调用所述存储器702中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的增量组包方法中的全部步骤。
93.本发明的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的增量组包方法中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的增量组包方法的全部步骤。
94.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
95.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
96.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
97.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
98.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1