快速更新代码的方法、装置、设备及存储介质转让专利

申请号 : CN202110249088.0

文献号 : CN112965714B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梁健雄

申请人 : 平安国际智慧城市科技股份有限公司

摘要 :

本发明提出一种快速更新代码的方法、装置、设备及计算机可读存储介质,其中,该方法包括:获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;提取至少两个应用操作的启动代码;获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;存放配置变量至Properties文件中。以实现研发人员只需修改本地的Properties的配置变量,即可全自动化实现更新多个应用操作的代码,且实现了多个应用操作的集中管理,且简化了修改变量后所执行的程序,提升工作效率。本发明还用于区块链技术领域。

权利要求 :

1.一种快速更新代码的方法,其特征在于,所述方法包括:获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;

提取至少两个应用操作的启动代码;

获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;所述获取配置文件,并将至少两个应用操作的启动代码写入配置文件中具体包括:当获取多个配置文件时,创建聚合模块;

在所述聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表;

提取所述聚合模块中的POM文件,写入POM文件至扩展列表中,并将所述扩展列表分别与对应的配置文件建立依赖;

查询配置文件中的POM文件,并提取存储于POM文件内启动代码的配置变量;

存放配置变量至Properties文件中。

2.根据权利要求1所述的快速更新代码的方法,其特征在于,所述查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量的步骤之后,包括:构建配置变量在配置文件中的POM文件中的依赖节点;

获取配置文件中的依赖模块,根据依赖模块关联设置依赖节点。

3.根据权利要求1所述的快速更新代码的方法,其特征在于,所述存放配置变量至Properties文件中步骤之后,包括:获取变量参数;

加载Properties文件,并将Properties文件中的配置变量替换为变量参数。

4.根据权利要求1所述的快速更新代码的方法,其特征在于,所述存放配置变量至Properties文件中的步骤之后,还包括:获取POM文件中的依赖jar包;

确定需要排除的jar包,并获取需要排除的jar包坐标;

提取Properties文件,并写入jar包坐标。

5.根据权利要求1所述的快速更新代码的方法,其特征在于,所述在聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表的步骤之后,包括:获取jar包的启动代码,并将启动代码写入聚合模块的POM文件中;

获取聚合模块的POM文件的项目名和模块名;

将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中。

6.根据权利要求5所述的快速更新代码的方法,其特征在于,所述将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中的步骤之后,包括:根据聚合模板中的POM文件的项目名与模块名建立与配置文件中的POM文件的继承关系。

7.一种快速更新代码装置,其特征在于,所述装置包括:存储器与处理器,所述存储器中包括快速更新代码程序,所述快速更新代码程序被所述处理器执行时实现如下步骤:获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;

提取至少两个应用操作的启动代码;

获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;所述获取配置文件,并将至少两个应用操作的启动代码写入配置文件具体包括:当获取多个配置文件时,创建聚合模块;

在所述聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表;

提取所述聚合模块中的POM文件,写入POM文件至扩展列表中,并将所述扩展列表分别与对应的配置文件建立依赖;

查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;

存放配置变量至Properties文件中。

8.一种快速更新代码设备,其特征在于,所述快速更新代码设备包括:操作获取模块,用于获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;

代码提取模块,用于提取至少两个应用操作的启动代码代码写入模块,用于获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;所述获取配置文件,并将至少两个应用操作的启动代码写入配置文件中具体包括:当获取多个配置文件时,创建聚合模块;

在所述聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表;

提取所述聚合模块中的POM文件,写入POM文件至扩展列表中,并将所述扩展列表分别与对应的配置文件建立依赖;

变量提取模块,用于查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;

变量存储模块,用于存放配置变量至Properties文件中。

说明书 :

快速更新代码的方法、装置、设备及存储介质

技术领域

[0001] 本发明涉及数据处理技术领域,尤其涉及一种快速更新代码的方法、装置、设备及计算机可读存储介质。

背景技术

[0002] Alibaba Cloud Toolkit针对单个模块部署确实不错,比Jekins方便快捷,省去Jekins的部署、维护、配置等操作。但是,基于综合大监管有5个微服务模块,10个研发人员,那么需要进行5*10=50次配置,并且服务有依赖性,部署顺序要控制好才行。针对这种场景,Alibaba Cloud Toolkit的缺陷是: 1、每个研发人员对每个模块都要进行一次配置,配置既繁琐又容易出错,并且带有重复性工作;2、需要手动的更新每个模块的代码;3、运行的时候需要按照一定的顺序执行,有些命令可以同时进行,有些命令需要串行执行,中间操作如果不连贯,打包时间会延长,不利于维护,据观察统计,打一次包在人工守护的情况下需要15分钟以上;4、后续扩展麻烦,增加一个微服务,每个研发人员都要配置一次,而且维护信息分配在几个配置中,不利于管理。

发明内容

[0003] 本发明提供一种快速更新代码的方法、装置、设备及计算机可读存储介质,其主要目的在于在将多个应用操作的启动代码集中至配置文件,在操作时只需更改配置文件中的配置变量,即可实现快速修改应用操作,进而实现根据需要执行的步骤选择性的选取对应的应用操作,无需所有应用操作都执行。
[0004] 为实现上述目的,本发明提供一种快速更新代码的方法,所述方法包括:
[0005] 获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0006] 提取至少两个应用操作的启动代码;
[0007] 获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0008] 查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;
[0009] 存放配置变量至Properties文件中。
[0010] 优选地,所述查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量的步骤之后,包括:
[0011] 构建配置变量在配置文件中的POM文件中的依赖节点;
[0012] 获取配置文件中的依赖模块,根据依赖模块关联设置依赖节点。
[0013] 优选地,所述存放配置变量至Properties文件中步骤之后,包括:
[0014] 获取变量参数;
[0015] 将Properties文件中的配置变量替换为变量参数。
[0016] 优选地,所述存放配置变量至Properties文件中的步骤之后,还包括:
[0017] 获取POM文件中的依赖jar包;
[0018] 确定需要排除的jar包,并获取需要排除的jar包坐标;
[0019] 提取Properties文件,并写入jar包坐标。
[0020] 优选地,所述获取配置文件,并将至少两个应用操作的启动代码写入配置文件中的步骤还包括:
[0021] 当获取多个配置文件时,创建聚合模块;
[0022] 在聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表;
[0023] 提取聚合模块中的POM文件,写入POM文件至扩展列表中,并将扩展列表分别与对应的配置文件建立依赖。
[0024] 优选地,所述在聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表的步骤之后,包括:
[0025] 获取jar包的启动代码,并将启动代码写入聚合模块的POM文件中;
[0026] 获取聚合模块的POM文件的项目名和模块名;
[0027] 将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中。
[0028] 优选地,所述将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中的步骤之后,包括:
[0029] 根据聚合模板中的POM文件的项目名与模块名建立与配置文件中的 POM文件的继承关系。
[0030] 此外,为实现上述目的,本发明还提供一种快速更新代码装置,所述装置包括:存储器与处理器,所述存储器中包括快速更新代码程序,所述快速更新代码程序被所述处理器执行时实现如下步骤:
[0031] 获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0032] 提取至少两个应用操作的启动代码;
[0033] 获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0034] 查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;
[0035] 存放配置变量至Properties文件中。
[0036] 此外,为实现上述目的,本发明还提供一种快速更新代码设备,所述快速更新代码设备包括:
[0037] 操作获取模块,用于获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0038] 代码提取模块,用于提取至少两个应用操作的启动代码;
[0039] 代码写入模块,用于获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0040] 变量提取模块,用于查询配置文件中的POM文件,并提取将存储于POM 文件内启动代码的配置变量;
[0041] 变量存储模块,用于存放配置变量至Properties文件中。
[0042] 此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括快速更新代码程序,所述快速更新代码程序被处理器执行时,实现如上所述的快速更新代码的方法的步骤。
[0043] 本发明提出的快速更新代码的方法、装置及计算机可读存储介质,通过 Maven项目设置至少两个运行的应用操作,并将应用操作的启动代码提取,将应用操作的启动代码写入配置文件,查询配置文件中的POM文件,并将应用操作的启动代码中的配置变量在配置文件中的坐标写入POM文件中,即 POM文件与配置文件建立依赖关系,提取将存储于POM文件内启动代码的配置变量并存放至Properties文件中,以便于在对proterties文件中配置变量定义一些自定义的变量时,配置变量依赖的proteries文件被加载时,内置的加载器自动读取配置变量对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标)的指定位置中的配置文件内容并保存到静态属性中。以实现研发人员只需修改本地的Properties的配置变量,即可全自动化实现更新多个应用操作的代码,且实现了多个应用操作的集中管理,且简化了修改变量后所执行的程序,提升工作效率。

附图说明

[0044] 图1为本发明快速更新代码的方法较佳实施例的应用环境示意图;
[0045] 图2为图1中快速更新代码程序较佳实施例的模块示意图;
[0046] 图3为本发明快速更新代码的方法较佳实施例的流程图。
[0047] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0048] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0049] 本发明提供一种快速更新代码的方法,应用于一种快速更新代码装置。参照图1所示,为本发明快速更新代码的方法较佳实施例的应用环境示意图。
[0050] 在本实施例中,快速更新代码装置包括:处理器12、存储器11、通信总线13及网络接口14。
[0051] 存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述快速更新代码装置的内部存储单元,例如该快速更新代码装置的硬盘。在另一些实施例中,所述可读存储介质也可以是所述快速更新代码装置的外部存储器11,例如所述快速更新代码装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
[0052] 在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述快速更新代码装置的快速更新代码程序10等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
[0053] 处理器12在一些实施例中可以是一中央处理器(Central Processing Unit, CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行快速更新代码程序10等。
[0054] 本领域技术人员可以理解,图1中示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0055] 如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作装置、网络通信模块、用户接口模块以及空调室内机的控制程序。
[0056] 在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的空调室内机的控制程序,并执行以下操作:
[0057] 网络接口14可选地可以包括标准的有线接口、无线接口(如WI‑FI接口),通常用于在该快速更新代码装置与其他电子设备之间建立通信连接。
[0058] 通信总线13用于实现这些组件之间的连接通信。
[0059] 图1仅示出了具有组件11‑14的快速更新代码装置,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0060] 可选地,该快速更新代码装置还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
[0061] 可选地,该快速更新代码装置还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light‑Emitting Diode,OLED)触摸器等。显示器用于显示在快速更新代码装置中处理的信息以及用于显示可视化的用户界面。
[0062] 可选地,该快速更新代码装置还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。
[0063] 此外,该快速更新代码装置的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
[0064] 可选地,该快速更新代码装置还可以包括射频(Radio Frequency,RF) 电路,传感器、音频电路等等,在此不再赘述。
[0065] 在一个可选的实施方式中,还可以:将所述快速制作Excel文件方法的结果上传至区块链中。
[0066] 具体地,基于所述快速制作Excel文件方法的结果得到对应的摘要信息,具体来说,摘要信息由所述快速制作Excel文件方法的结果进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得该摘要信息,以便查证所述处理全量保单的任务调度方法的结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0067] 在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作装置、以及快速更新代码程序10;处理器12执行存储器11中存储的快速更新代码程序10时实现如下步骤:
[0068] 获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0069] 提取至少两个应用操作的启动代码;
[0070] 获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0071] 查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;
[0072] 存放配置变量至Properties文件中。
[0073] 需要说明的是,在Maven项目中设置有多个应用操作,多个应用操作按顺序排列,并异步执行各自功能,本实施例主要为了将每个应用操作统一管理,在需要操作时,可以根据需要执行的步骤选择性的选取对应的应用操作,无需所有应用操作都执行。
[0074] 在Maven项目中,依次设置的应用操作至少包括:获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码。
[0075] 即选定自动Maven插件设置jar包,获取jar包的启动代码,在Maven项目中创建配置文件,根据Maven intall命令将启动代码在Maven项目中的存放目录写入配置文件中,IDE自动建立配置文件的开发环境,在开发环境中提取配置文件中的POM文件,并在POM文件中添加Maven‑plugin‑api以及 Maven‑plugin‑annotations这两个插件,以将POM文件与Maven插件建立依赖关系,实现Maven插件的自定义,Maven‑plugin‑api为插件开发api, Maven‑plugin‑annotations为插件中使用的注解定义的包,POM文件中还添加 Maven‑assembly‑plugin插件,Maven‑assembly‑plugin插件用于读取配置文件。
[0076] Maven项目中设置配置文件,通过配置文件对对多个应用操作进行集中管理,在需要操作时,可以根据需要执行的步骤选择性的选取对应的应用操作,无需所有应用操作都执行。设置过程:拉取启动代码,根据Maven intall 命令将启动代码在Maven项目中的存放目录写入配置文件中,通过创建 Maven项目,以及引入Maven‑plugin‑api以及Maven‑plugin‑annotations这两个插件,即对项目进行自定义插件对象的启动方法。
[0077] 其中,当Maven项目设有多个配置文件时,创建聚合模块;在Maven项目管理多个配置文件时,通过创建聚合模块对多个配置文件进行管理,其中,聚合模块运用目录结构来设定POM的继承关系,并设置下级目录与上级目录,并将下级目录的POM默认继承上级目录的POM,而proterties文件中POM 文件与上级目录的POM文件建立依赖即可实现快速读取。
[0078] 其中,下级目录与上级目录的继承关系可以通过层层递进的目录结构实现,也可通过上级目录中增加下级目录的POM文件。
[0079] 设置多个配置文件扩展列表,并将多个配置文件写入对应的扩展列表;即将聚合模块中下级目录与上级目录的继承关系采用层层递进的目录结构实现,即设置多个配置文件扩展列表,并将多个配置文件写入对应的扩展列表中,将配置文件的POM文件与扩展列表处的目录(上级目录)建立关联,即将继承关系设置完毕。
[0080] 获取jar包的启动代码,并将启动代码写入聚合模块的POM文件中;细化了聚合模块中POM文件与配置文件中的POM文件的依赖关系的建立,具体为,获取jar包的启动代码,提取聚合模块中的POM文件,并在POM文件中添加Maven‑plugin‑api以及Maven‑plugin‑annotations这两个插件,以将POM 文件与Maven插件建立依赖关系,通过聚合模块聚合多个配置文件,实现对多个项目的集中管理;
[0081] 获取聚合模块的POM文件的项目名和模块名;聚合模块的POM文件的项目名和模块名即为聚合模块的POM文件的坐标,通过聚合模块的POM文件的坐标就能确定找出对应的依赖配置文件存在的目录以及配置文件,以便于根据聚合模块的POM文件的坐标与配置文件的POM文件建立继承关系,以便于与proterties文件中POM文件建立依赖关系。
[0082] 将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中;为了在多个配置文件均需引入依赖相同的jar包时,那么可以将jar包写入聚合模块中的POM文件中,再有配置文件中的POM文件继承,具体为:将jar包放入聚合模块中的POM文件中的坐标,该坐标包括项目名与模块名,在将jar包在聚合模块内的坐标写入配置文件中的POM文件中,当翻译项目时,通过Maven读取POM文件,并从POM文件与jar包的依赖关系中找到 jar包,并下载对应的jar包,不需要多耗费时间一层层的寻找jar包,缩减了 jar包获取时间。通过将各个配置文件的依赖关系和POM文件提取出来,使得在简化POM文件读取的同时还可以促进各个配置文件的一致性。
[0083] 需要说明的是,聚合模块中的POM文件中提取的元素不止项目名与模块名可写入配置文件的POM文件中,聚合模块中的POM文件中提取的元素还可以位项目描述信息、项目组织信息、项目创始年份、项目的URL地址、项目的开发者信息、项目的贡献者信息、项目的部署配置、项目的缺陷跟踪系统信息、项目的持续集成系统信息、项目的版本控制系统、项目的邮件列表信息、自定义的Maven属性、项目的依赖配置、项目的依赖管理配置、项目的仓库配置、项目的源码目录配置、输出目录配置、插件配置、插件管理配置、项目的报告输出目录配置、报告插件配置等。
[0084] 提取聚合模块中的POM文件,并将扩展列表写入POM文件中,并将扩展列表分别与对应的配置文件建立依赖;上级目录与下级目录的依赖关系的建立,是将聚合模块中的POM文件中写入扩展列表,并将扩展列表与对应存放的大包配置文件中的POM文件建立依赖,将聚合模块中的POM文件与 proterties文件中POM文件建立依赖关系,即在proterties文件中POM文件修改变量参数时,内置的加载器自动读取POM文件对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标),聚合模块中的POM文件加载至下级目录中的配置文件中,以获取配置文件的指定位置,并获取配置文件内容并保存到静态属性中。
[0085] 通过聚合模块把项目的多个配置文件聚合在一起,并使用一条命令进行构建,即通过一条命令实现构建多个配置文件,其中,聚合模块本身也是配置文件,其内亦设置有POM文件,在聚合模块的项目目录下设置多个配置文件对应的扩展列表,将多个配置文件聚合在聚合模块的项目目录下,并放置在对应的扩展列表内,对应地在聚合模块的POM文件中写入多个配置文件对应的扩展列表,并将扩展列表分别与对应的配置文件建立依赖,Maven项目会根据多个配置文件的依赖关系计算多个配置文件的构建次序,在构建Maven 项目时,其内使用一条命令进行依次构建实现预存的各个配置文件,以实现一条命令实现构建多个项目。
[0086] 在配置文件中的POM文件中构建配置变量,并提取配置变量中的依赖节点;在POM文件中的依赖节点的坐标三要素包括:groupId、artifactId、version,其中,groupId:Maven项目隶属的实际项目,命名方式通常与域名反向一一对应;artifactId:实际项目中的一个Maven项目(模块),推荐使用实际项目名称作为artifactId的前缀;version:Maven项目当前所处的版本。当然,POM 文件的依赖节点还可以包括packaging与classifier,packaging:Maven项目的打包方式,打包方式通常与所生成构件的文件扩展名对应。当没有定义时,Maven会使用默认值jar。classifier:帮助定义构件输出的一些附属附件。注意,不能直接定义项目的classifier,因为附属构件不是项目直接默认生成的,而是由附加的插件帮助生成的。
[0087] 获取Maven项目中的依赖模块,根据依赖模块关联设置依赖节点;在写 POM文件的时候,一个依赖往往会依赖于其他的包,而Maven可以避免去搜索所有所需库的需求,Maven通过读取POM文件,找出二者之间的依赖关系,将在每个项目的POM文件中定义好直接/间接的依赖关系。当翻译项目时,通过Maven读取POM文件,并从POM文件与jar包的依赖关系中找到jar包,并下载对应的jar包。
[0088] 将POM文件中的依赖节点的坐标三元素与Maven项目中的依赖模块设置相同,在研发人员修改POM文件内的配置变量时,Maven项目会去 Properties文件中读取POM文件获取需要配置信息,并根据需要配置的信息执行相应的更新代码等操作。
[0089] POM文件时Maven项目的核心,当用户根据需求的jar包即在POM文件内进行设置,当翻译项目时,通过Maven读取POM文件,并从POM文件与jar包的依赖关系中找到jar包,并下载对应的jar包。通过 Properties‑Maven‑plugin的插件将多个配置文件中的POM文件统一维护到一个本地Properties文件中,POM文件主要描述了项目的Maven坐标以及与 Maven项目的依赖关系,针对将配置文件与POM文件分离,以便于在配置文件打包后,java程序还能快速读取POM文件定义一些自定义的配置变量并修改变量参数,不再需要修改代码的问题,也实现针对不同编程语言环境所支持的配置文件,方便用户的配置,能让用户够脱离程序代码本身去修改相关的变量的设置。
[0090] 在现有技术中通常POM文件存放在Maven项目中配置文件的根目录中,并根据读取POM文件进行获取需要的配置信息,而本申请通过将提取配置文件中的POM文件并存放至Properties文件中,利用proterties文件中POM文件定义一些自定义的配置变量,当proteries文件被加载时,内置的加载器自动读取POM文件对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标)的指定位置中的配置文件内容并保存到静态属性中,增加代码修改高效性与便利性,实现一次加载,可多次使用。
[0091] 获取变量参数;变量参数为Maven变量,其中包括:Maven中内置属性; POM/Project Properties所有POM中的元素,即当前POM文件任意节点的内容;本地用户设定;环境变量,java系统属性;用户在POM中定义的自定义属性;上级工程的变量等。
[0092] 提取Properties文件中的POM文件,并写入变量参数。POM文件建立的实现步骤,具体为,在对proterties文件中POM文件定义一些自定义的配置变量时,POM文件依赖的当proteries文件被加载时,内置的加载器自动读取 POM文件对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标) 的指定位置中的配置文件内容并保存到静态属性中。
[0093] 确定需要排除的jar包,并获取jar包坐标;当POM文件中存在多个依赖的jar包时,为了依赖的jar包提取方便,将其中的一个或多个依赖的jar包进行排除,继而有确定需要排除的jar包,并获取需要排除的jar包所在的坐标位置,其中jar包的坐标包括jar包的项目名以及jar包的模块名,通过jar包的项目名和jar包的模块名就能确定找出对应的依赖jar包,并根据jar包的项目名和jar包的模块名将jar包的依赖进行排除。
[0094] 提取Properties文件中的POM文件中的配置变量,并写入jar包坐标;为了排除POM中去除想排除的依赖,或者想直接下载依赖的jar包,代码中使用exclusions元素进行声明排除依赖,exclusions可以包含一个或者多个 exclusion子元素,因此可以排除一个或者多个依赖的jar包。需要注意的是,声明exclusion排除依赖的时候只需要jar包的项目名和jar包的模块名,而不需要version元素进行判断是狗从插件下载Maven扩展,这是因为只需要jar 包的项目名和jar包的模块名就能确定找出对应的依赖jar包,并根据jar包的项目名和jar包的模块名将jar包的依赖进行排除。以减少依赖多个jar包带来的冲突。换句话说,Maven解析后的依赖中,不可能出现jar包的项目名和jar 包的模块名,且Maven可直接引用jar包下载到本地文件夹。
[0095] 需要说明的是,上述实施例中通过Maven项目设置至少两个运行的应用操作,并将应用操作的启动代码提取,将应用操作的启动代码写入配置文件,查询配置文件中的POM文件,并将应用操作的启动代码中的配置变量在配置文件中的坐标写入POM文件中,即POM文件与配置文件建立依赖关系,提取将存储于POM文件内启动代码的配置变量并存放至Properties文件中,以便于在对proterties文件中配置变量定义一些自定义的变量时,配置变量依赖的proteries文件被加载时,内置的加载器自动读取配置变量对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标)的指定位置中的配置文件内容并保存到静态属性中。以实现研发人员只需修改本地的Properties的配置变量,即可全自动化实现更新代码、安装本地基础包、微服务模块打包、上传jar包、重启应用,还可以进行个性化配置,按需部署启用代码的存放的配置文件,操作时执行自定义Maven项目命令即可实现按需执行组件功能,且自定义插件已经实现了多个应用操作的集中管理,且简化了修改变量后所执行的程序,提升工作效率。
[0096] 在其他实施例中,快速更新代码程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图2所示,为图1中快速更新代码程序10较佳实施例的程序模块图。所述快速更新代码程序10可以被分割为:获取模块110、提取模块120、写入模块130、提取变量模块140、存储模块150。所述模块110‑150所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:
[0097] 获取模块110,获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0098] 提取模块120,提取至少两个应用操作的启动代码;
[0099] 写入模块130,取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0100] 提取变量模块140,查询配置文件中的POM文件,并提取将存储于POM 文件内启动代码的配置变量;
[0101] 存储模块150,存放配置变量至Properties文件中。
[0102] 此外,本发明还提供一种快速更新代码的方法。参照图3所示,为本发明快速更新代码的方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
[0103] 在本实施例中,快速更新代码的方法包括:步骤S10‑步骤S40。
[0104] 步骤S10,获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0105] 需要说明的是,在Maven项目中设置有多个应用操作,多个应用操作按顺序排列,并异步执行各自功能,本实施例主要为了将每个应用操作统一管理,在需要操作时,可以根据需要执行的步骤选择性的选取对应的应用操作,无需所有应用操作都执行。
[0106] 在Maven项目中,依次设置的应用操作至少包括:获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码。
[0107] 步骤S20,提取至少两个应用操作的启动代码;
[0108] 即选定自动Maven插件设置jar包,获取jar包的启动代码,在Maven项目中创建配置文件,根据Maven intall命令将启动代码在Maven项目中的存放目录写入配置文件中,IDE自动建立配置文件的开发环境,在开发环境中提取配置文件中的POM文件,并在POM文件中添加Maven‑plugin‑api以及 Maven‑plugin‑annotations这两个插件,以将POM文件与Maven插件建立依赖关系,实现Maven插件的自定义,Maven‑plugin‑api为插件开发api, Maven‑plugin‑annotations为插件中使用的注解定义的包,POM文件中还添加 Maven‑assembly‑plugin插件,Maven‑assembly‑plugin插件用于读取配置文件。
[0109] 步骤S30,获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0110] Maven项目中设置配置文件,通过配置文件对对多个应用操作进行集中管理,在需要操作时,可以根据需要执行的步骤选择性的选取对应的应用操作,无需所有应用操作都执行。设置过程:拉取启动代码,根据Maven intall 命令将启动代码在Maven项目中的存放目录写入配置文件中,通过创建 Maven项目,以及引入Maven‑plugin‑api以及Maven‑plugin‑annotations这两个插件,即对项目进行自定义插件对象的启动方法。
[0111] 其中,当Maven项目设有多个配置文件时,创建聚合模块;在Maven项目管理多个配置文件时,通过创建聚合模块对多个配置文件进行管理,其中,聚合模块运用目录结构来设定POM的继承关系,并设置下级目录与上级目录,并将下级目录的POM默认继承上级目录的POM,而proterties文件中POM 文件与上级目录的POM文件建立依赖即可实现快速读取。
[0112] 其中,下级目录与上级目录的继承关系可以通过层层递进的目录结构实现,也可通过上级目录中增加下级目录的POM文件。
[0113] 设置多个配置文件扩展列表,并将多个配置文件写入对应的扩展列表;即将聚合模块中下级目录与上级目录的继承关系采用层层递进的目录结构实现,即设置多个配置文件扩展列表,并将多个配置文件写入对应的扩展列表中,将配置文件的POM文件与扩展列表处的目录(上级目录)建立关联,即将继承关系设置完毕。
[0114] 获取jar包的启动代码,并将启动代码写入聚合模块的POM文件中;细化了聚合模块中POM文件与配置文件中的POM文件的依赖关系的建立,具体为,获取jar包的启动代码,提取聚合模块中的POM文件,并在POM文件中添加Maven‑plugin‑api以及Maven‑plugin‑annotations这两个插件,以将POM 文件与Maven插件建立依赖关系,通过聚合模块聚合多个配置文件,实现对多个项目的集中管理;
[0115] 获取聚合模块的POM文件的项目名和模块名;聚合模块的POM文件的项目名和模块名即为聚合模块的POM文件的坐标,通过聚合模块的POM文件的坐标就能确定找出对应的依赖配置文件存在的目录以及配置文件,以便于根据聚合模块的POM文件的坐标与配置文件的POM文件建立继承关系,以便于与proterties文件中POM文件建立依赖关系。
[0116] 将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中;为了在多个配置文件均需引入依赖相同的jar包时,那么可以将jar包写入聚合模块中的POM文件中,再有配置文件中的POM文件继承,具体为:将jar包放入聚合模块中的POM文件中的坐标,该坐标包括项目名与模块名,在将jar包在聚合模块内的坐标写入配置文件中的POM文件中,当翻译项目时,通过Maven读取POM文件,并从POM文件与jar包的依赖关系中找到 jar包,并下载对应的jar包,不需要多耗费时间一层层的寻找jar包,缩减了 jar包获取时间。通过将各个配置文件的依赖关系和POM文件提取出来,使得在简化POM文件读取的同时还可以促进各个配置文件的一致性。
[0117] 需要说明的是,聚合模块中的POM文件中提取的元素不止项目名与模块名可写入配置文件的POM文件中,聚合模块中的POM文件中提取的元素还可以位项目描述信息、项目组织信息、项目创始年份、项目的URL地址、项目的开发者信息、项目的贡献者信息、项目的部署配置、项目的缺陷跟踪系统信息、项目的持续集成系统信息、项目的版本控制系统、项目的邮件列表信息、自定义的Maven属性、项目的依赖配置、项目的依赖管理配置、项目的仓库配置、项目的源码目录配置、输出目录配置、插件配置、插件管理配置、项目的报告输出目录配置、报告插件配置等。
[0118] 提取聚合模块中的POM文件,并将扩展列表写入POM文件中,并将扩展列表分别与对应的配置文件建立依赖;上级目录与下级目录的依赖关系的建立,是将聚合模块中的POM文件中写入扩展列表,并将扩展列表与对应存放的配置文件中的POM文件建立依赖,将聚合模块中的POM文件与proterties 文件中POM文件建立依赖关系,即在proterties文件中POM文件修改变量参数时,内置的加载器自动读取POM文件对应的Maven坐标(启动代码在Maven 项目中的存放目录的坐标),聚合模块中的POM文件加载至下级目录中的配置文件中,以获取配置文件的指定位置,并获取配置文件内容并保存到静态属性。
[0119] 通过聚合模块把项目的多个配置文件聚合在一起,并使用一条命令进行构建,即通过一条命令实现构建多个配置文件,其中,聚合模块本身也是配置文件,其内亦设置有POM文件,在聚合模块的项目目录下设置多个配置文件对应的扩展列表,将多个配置文件聚合在聚合模块的项目目录下,并放置在对应的扩展列表内,对应地在聚合模块的POM文件中写入多个配置文件对应的扩展列表,并将扩展列表分别与对应的配置文件建立依赖,Maven项目会根据多个配置文件的依赖关系计算多个配置文件的构建次序,在构建Maven 项目时,其内使用一条命令进行依次构建实现预存的各个配置文件,以实现一条命令实现构建多个项目。
[0120] 步骤S40,查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;
[0121] 在配置文件中的POM文件中构建配置变量,并提取配置变量中的依赖节点;在POM文件中的依赖节点的坐标三要素包括:groupId、artifactId、version,其中,groupId:Maven项目隶属的实际项目,命名方式通常与域名反向一一对应;artifactId:实际项目中的一个Maven项目(模块),推荐使用实际项目名称作为artifactId的前缀;version:Maven项目当前所处的版本。当然,POM 文件的依赖节点还可以包括packaging与classifier,packaging:Maven项目的打包方式,打包方式通常与所生成构件的文件扩展名对应。当没有定义时,Maven会使用默认值jar。classifier:帮助定义构件输出的一些附属附件。注意,不能直接定义项目的classifier,因为附属构件不是项目直接默认生成的,而是由附加的插件帮助生成的。
[0122] 获取Maven项目中的依赖模块,根据依赖模块关联设置依赖节点;在写 POM文件的时候,一个依赖往往会依赖于其他的包,而Maven可以避免去搜索所有所需库的需求,Maven通过读取POM文件,找出二者之间的依赖关系,将在每个项目的POM文件中定义好直接/间接的依赖关系。当翻译项目时,通过Maven读取POM文件,并从POM文件与jar包的依赖关系中找到jar包,并下载对应的jar包。
[0123] 将POM文件中的依赖节点的坐标三元素与Maven项目中的依赖模块设置相同,在研发人员修改POM文件内的配置变量时,Maven项目会去 Properties文件中读取POM文件获取需要配置信息,并根据需要配置的信息执行相应的更新代码等操作。
[0124] 步骤S50,存放配置变量至Properties文件中。
[0125] POM文件时Maven项目的核心,当用户根据需求的jar包即在POM文件内进行设置,当翻译项目时,通过Maven读取POM文件,并从POM文件与jar包的依赖关系中找到jar包,并下载对应的jar包。通过 Properties‑Maven‑plugin的插件将多个配置文件中的POM文件统一维护到一个本地Properties文件中,POM文件主要描述了项目的Maven坐标以及与 Maven项目的依赖关系,针对将配置文件与POM文件分离,以便于在配置文件打包后,java程序还能快速读取POM文件定义一些自定义的配置变量并修改变量参数,不再需要修改代码的问题,也实现针对不同编程语言环境所支持的配置文件,方便用户的配置,能让用户够脱离程序代码本身去修改相关的变量的设置。
[0126] 在现有技术中通常POM文件存放在Maven项目中配置文件的根目录中,并根据读取POM文件进行获取需要的配置信息,而本申请通过将提取配置文件中的POM文件的配置变量并存放至Properties文件中,利用proterties文件中配置变量定义一些自定义的变量参数,当proteries文件被加载时,内置的加载器自动读取POM文件对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标)的指定位置中的配置文件内容并保存到静态属性中,增加代码修改高效性与便利性,实现一次加载,可多次使用。
[0127] 获取变量参数;变量参数为Maven变量,其中包括:Maven中内置属性; POM/Project Properties所有POM中的元素,即当前POM文件任意节点的内容;本地用户设定;环境变量,java系统属性;用户在POM中定义的自定义属性;上级工程的变量等。
[0128] 提取Properties文件中的POM文件,并写入变量参数。POM文件建立的实现步骤,具体为,在对proterties文件中POM文件定义一些自定义的变量时,POM文件依赖的当proteries文件被加载时,内置的加载器自动读取POM 文件对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标)的指定位置中的配置文件内容并保存到静态属性中。
[0129] 确定需要排除的jar包,并获取jar包坐标;当POM文件中存在多个依赖的jar包时,为了依赖的jar包提取方便,将其中的一个或多个依赖的jar包进行排除,继而有确定需要排除的jar包,并获取需要排除的jar包所在的坐标位置,其中jar包的坐标包括jar包的项目名以及jar包的模块名,通过jar包的项目名和jar包的模块名就能确定找出对应的依赖jar包,并根据jar包的项目名和jar包的模块名将jar包的依赖进行排除。
[0130] 提取Properties文件中的POM文件中的配置变量,并写入jar包坐标;为了排除POM中去除想排除的依赖,或者想直接下载依赖的jar包,代码中使用exclusions元素进行声明排除依赖,exclusions可以包含一个或者多个 exclusion子元素,因此可以排除一个或者多个依赖的jar包。需要注意的是,声明exclusion排除依赖的时候只需要jar包的项目名和jar包的模块名,而不需要version元素进行判断是狗从插件下载Maven扩展,这是因为只需要jar 包的项目名和jar包的模块名就能确定找出对应的依赖jar包,并根据jar包的项目名和jar包的模块名将jar包的依赖进行排除。以减少依赖多个jar包带来的冲突。换句话说,Maven解析后的依赖中,不可能出现jar包的项目名和jar 包的模块名,且Maven可直接引用jar包下载到本地文件夹。
[0131] 需要说明的是,上述实施例中通过Maven项目设置至少两个运行的应用操作,并将应用操作的启动代码提取,将应用操作的启动代码写入配置文件,查询配置文件中的POM文件,并将应用操作的启动代码中的配置变量在配置文件中的坐标写入POM文件中,即POM文件与配置文件建立依赖关系,提取将存储于POM文件内启动代码的配置变量并存放至Properties文件中,以便于在对proterties文件中配置变量定义一些自定义的变量时,配置变量依赖的proteries文件被加载时,内置的加载器自动读取配置变量对应的Maven坐标(启动代码在Maven项目中的存放目录的坐标)的指定位置中的配置文件内容并保存到静态属性中。以实现研发人员只需修改本地的Properties的配置变量,即可全自动化实现更新代码、安装本地基础包、微服务模块打包、上传jar包、重启应用,还可以进行个性化配置,按需部署启用代码的存放的配置文件,操作时执行自定义Maven项目命令即可实现按需执行组件功能,且自定义插件已经实现了多个应用操作的集中管理,且简化了修改变量后所执行的程序,提升工作效率。
[0132] 此外,本发明实施例还提出一种快速更新代码设备,所述快速更新代码设备包括:
[0133] 操作获取模块,用于获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0134] 代码提取模块,用于提取至少两个应用操作的启动代码;
[0135] 代码写入模块,用于获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0136] 变量提取模块,用于查询配置文件中的POM文件,并提取将存储于POM 文件内启动代码的配置变量;
[0137] 变量存储模块,用于存放配置变量至Properties文件中。
[0138] 优选地,所述快速更新代码设备还包括:
[0139] 构建依赖节点模块,构建配置变量在配置文件中的POM文件中的依赖节点;
[0140] 关联模块,获取配置文件中的依赖模块,根据依赖模块关联设置依赖节点。
[0141] 优选地,所述快速更新代码设备还包括:
[0142] 变量获取模块,获取变量参数;
[0143] 变量替换模块,将Properties文件中的配置变量替换为变量参数。
[0144] 优选地,所述快速更新代码设备还包括:
[0145] jar包获取模块,获取POM文件中的依赖jar包;
[0146] 排除模块,确定需要排除的jar包,并获取需要排除的jar包坐标;
[0147] 坐标写入模块,提取Properties文件,并写入jar包坐标。
[0148] 优选地,所述代码写入模块还包括:
[0149] 创建模块,当获取多个配置文件时,创建聚合模块;
[0150] 扩展模块,在聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表;
[0151] 建立依赖模块,提取聚合模块中的POM文件,写入POM文件至扩展列表中,并将扩展列表分别与对应的配置文件建立依赖。
[0152] 优选地,所述快速更新代码设备还包括:
[0153] jar包代码获取模块,获取jar包的启动代码,并将启动代码写入聚合模块的POM文件中;
[0154] 坐标获取模块,获取聚合模块的POM文件的项目名和模块名;
[0155] 坐标写入模块,将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中。
[0156] 优选地,所述快速更新代码设备还包括:
[0157] 继承建立模块,根据聚合模板中的POM文件的项目名与模块名建立与配置文件中的POM文件的继承关系。
[0158] 本发明之快速更新代码设备的具体实施方式与上述快速更新代码的方法、电子装置的具体实施方式大致相同,在此不再赘述。
[0159] 此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括快速更新代码程序,所述快速更新代码程序被处理器执行时实现如下操作:
[0160] 获取至少两个应用操作,其中,所述应用操作至少包括获取操作代码、安装操作代码的依赖节点至本地、打包操作代码、上传打包后的操作代码、重启操作代码;
[0161] 提取至少两个应用操作的启动代码;
[0162] 获取配置文件,并将至少两个应用操作的启动代码写入配置文件中;
[0163] 查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量;
[0164] 存放配置变量至Properties文件中。
[0165] 优选地,所述查询配置文件中的POM文件,并提取将存储于POM文件内启动代码的配置变量的步骤之后,包括:
[0166] 构建配置变量在配置文件中的POM文件中的依赖节点;
[0167] 获取配置文件中的依赖模块,根据依赖模块关联设置依赖节点。
[0168] 优选地,所述存放配置变量至Properties文件中步骤之后,包括:
[0169] 获取变量参数;
[0170] 将Properties文件中的配置变量替换为变量参数。
[0171] 优选地,所述存放配置变量至Properties文件中的步骤之后,还包括:
[0172] 获取POM文件中的依赖jar包;
[0173] 确定需要排除的jar包,并获取需要排除的jar包坐标;
[0174] 提取Properties文件,并写入jar包坐标。
[0175] 优选地,所述获取配置文件,并将至少两个应用操作的启动代码写入配置文件中的步骤还包括:
[0176] 当获取多个配置文件时,创建聚合模块;
[0177] 在聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表;
[0178] 提取聚合模块中的POM文件,写入POM文件至扩展列表中,并将扩展列表分别与对应的配置文件建立依赖。
[0179] 优选地,所述在聚合模块中设置多个配置文件对应的扩展列表,并将多个配置文件写入对应的扩展列表的步骤之后,包括:
[0180] 获取jar包的启动代码,并将启动代码写入聚合模块的POM文件中;
[0181] 获取聚合模块的POM文件的项目名和模块名;
[0182] 将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中。
[0183] 优选地,所述将聚合模块的POM文件的项目名和模块名写入多个配置文件的POM文件中的步骤之后,包括:
[0184] 根据聚合模板中的POM文件的项目名与模块名建立与配置文件中的 POM文件的继承关系。
[0185] 本发明之计算机可读存储介质的具体实施方式与上述快速更新代码的方法、电子装置的具体实施方式大致相同,在此不再赘述。
[0186] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0187] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘) 中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0188] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。