代码更新方法、装置、电子设备及可读存储介质与流程

文档序号:14296081阅读:127来源:国知局

本发明涉及计算机技术领域,具体而言,涉及一种代码更新方法、装置、电子设备及可读存储介质。



背景技术:

传统的代码管理一般是将所有的代码都配置在一个项目工程下,但是目前在android客户端的组件化过程中经常会将一个项目工程下的所有业务代码拆分成多个项目组件,从而导致一个项目工程中存在多个需要管理的项目组件,尤其是需要更新代码的时候需要手动对每一个模块一一进行更新,更新速度极慢,开发效率低下,并且在更新过程中非常容易出现漏掉项目组件的情况,从而导致项目编译时出现问题。



技术实现要素:

为了克服现有技术中的上述不足,本发明的目的在于提供一种代码更新方法、装置、电子设备及可读存储介质,能够有效克服传统方案中需手动来更新代码的问题,并且能够保证所有项目组件的代码同时更新,从而能够极大地提高了组件化过程中项目组件的管理,并且有效确保了代码的更新速度,显著提升开发效率。

为了实现上述目的,本发明较佳实施例采用的技术方案如下:

本发明较佳实施例提供一种代码更新方法,应用于电子设备,所述电子设备中安装有git代码托管工具,且配置有代码更新脚本,所述代码更新脚本中配置有多个项目组件的代码更新指令,所述方法包括:

在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令,所述代码更新指令中包括有对应的目标项目组件的目录文件夹;

根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹;

从所述目标项目组件对应的代码服务器中下载待更新代码;

调用所述git代码托管工具将所述待更新代码更新到该目标项目组件的目录文件夹中,以完成每个目标项目组件的代码更新。

在本发明较佳实施例中,所述代码更新脚本中包括有用于标记所述代码更新脚本所在的脚本目录的标记变量,所述根据每条代码更新指令,分别进入对应的目标项目组件所在目录,包括:

获取从所述脚本目录到目标项目组件的目录文件夹的跳转路径;

根据所述代码更新指令中的目标跳转命令,按照所述跳转路径进入对应的目标项目组件所在目录。

在本发明较佳实施例中,所述方法还包括:

响应所述代码更新脚本中的标记变量的变更请求,将所述标记变量中的脚本目录变更到目标脚本目录,所述变更请求中包括有所述目标脚本目录。

在本发明较佳实施例中,所述从所述目标项目组件对应的代码服务器中下载待更新代码之前,所述方法还包括:

根据所述代码更新指令中的echo命令,在控制台界面中输出当前的目标项目组件的目录文件夹。

在本发明较佳实施例中,所述调用所述git代码托管工具将所述待更新代码更新到该目标项目组件的目录文件夹中,包括:

根据所述代码更新指令中的gitpull命令,调用所述git代码托管工具将所述待更新代码更新到该目标项目组件的目录文件夹中。

在本发明较佳实施例中,所述在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令之前,所述方法还包括:

响应代码更新脚本的配置请求,根据接收到的项目组件的代码更新指令配置所述代码更新脚本,其中,所述代码更新指令中包括有跳转命令、echo命令以及gitpull命令,所述跳转命令和echo命令中均包括有所述项目组件的目录文件夹,所述gitpull命令用于执行将待更新代码更新到所述目标项目组件中的操作。

在本发明较佳实施例中,所述在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令之前,所述方法还包括:

响应git代码托管工具的安装请求,将所述git代码托管工具的可执行文件配置到执行路径中,以使配置的代码更新脚本能够被执行。

本发明较佳实施例还提供一种代码更新装置,应用于电子设备,所述电子设备中安装有git代码托管工具,且配置有代码更新脚本,所述代码更新脚本中配置有多个项目组件的代码更新指令,所述装置包括:

获取模块,用于在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令,所述代码更新指令中包括有对应的目标项目组件的目录文件夹;

进入模块,用于根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹;

下载模块,用于从所述目标项目组件对应的代码服务器中下载待更新代码;

更新模块,用于调用所述git代码托管工具将所述待更新代码更新到该目标项目组件中,以完成每个目标项目组件的代码更新。

本发明较佳实施例还提供一种电子设备,所述电子设备包括:

存储介质;

处理器;以及

代码更新装置,所述装置存储于所述存储介质中并包括由所述处理器执行的软件功能模块,所述装置包括:

获取模块,用于在接收到代码更新请求后,根据所述代码更新请求从代码更新脚本中获取至少一个目标项目组件的代码更新指令,所述代码更新指令中包括有对应的目标项目组件的目录文件夹;

进入模块,用于根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹;

下载模块,用于从所述目标项目组件对应的代码服务器中下载待更新代码;

更新模块,用于调用git代码托管工具将所述待更新代码更新到该目标项目组件中,以完成每个目标项目组件的代码更新。

本发明较佳实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述的代码更新方法。

相对于现有技术而言,本发明具有以下有益效果:

本发明实施例提供一种代码更新方法、装置、电子设备及可读存储介质,电子设备在接收到代码更新请求后,根据代码更新请求从代码更新脚本中获取至少一个目标项目组件的代码更新指令,然后根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹,并从目标项目组件对应的代码服务器中下载待更新代码,最后调用git代码托管工具将待更新代码更新到该目标项目组件的目录文件夹中,以完成每个目标项目组件的代码更新。由此,能够有效克服传统方案中需手动来更新代码的问题,并且能够保证所有项目组件的代码同时更新,从而能够极大地提高了组件化过程中项目组件的管理,并且有效确保了代码的更新速度,显著提升开发效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本发明较佳实施例提供的代码更新方法的一种应用场景示意图;

图2为本发明较佳实施例提供的代码更新方法的一种流程示意图;

图3为本发明较佳实施例提供的项目组件的一种目录结构图;

图4为本发明较佳实施例提供的代码更新装置的一种功能模块图;

图5为本发明较佳实施例提供的电子设备的一种结构示意框图。

图标:100-电子设备;110-总线;120-处理器;130-存储介质;140-总线接口;150-网络适配器;160-用户接口;200-代码更新装置;210-获取模块;220-进入模块;230-下载模块;240-更新模块;300-代码服务器。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参阅图1,为本发明较佳实施例提供的代码更新方法的一种应用场景示意图。本实施例中,所述代码更新方法应用于电子设备100,所述电子设备100与至少一个代码服务器300(图1中仅示出一个)通信连接,所述电子设备100可以是但不限于pc、笔记本电脑等等。所述电子设备100可以从需要更新的项目组件对应的代码服务器300中下载需要更新的代码。

请参阅图2,为本发明较佳实施例提供的代码更新方法的一种流程示意图,所述方法由图1中所示的电子设备100执行。所应说明的是,本发明实施例提供的代码更新方法不以图2及以下所述的具体顺序为限制。所述方法的具体流程如下:

步骤s210,在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令。

本实施例中,所述电子设备100中预先安装有git代码托管工具,且配置有代码更新脚本,所述代码更新脚本中配置有多个项目组件的代码更新指令。在对步骤s210作进一步阐述之前,首先对所述git代码托管工具的安装和所述代码更新脚本的配置进行说明。

git代码托管工具是一款免费、开源的分布式版本控制系统,主要是为了帮助管理linux内核开发而开发的一个开放源码的版本控制软件,可以用于快速高效地处理任何或小或大的项目。现有技术中,可以通过安装所述git代码托管工具的分布式管理特性实现对项目工程拆分后的多个项目组件的管理。具体地,所述git代码托管工具的安装方式可以是,电子设备100在接收到git代码托管工具的安装请求后,将所述git代码托管工具的可执行文件git.exe配置到windows系统的执行路径中,如此,使用脚本语言编写的代码就能够在windows的环境中进行执行和代码自动更新的操作,也即,配置的代码更新脚本能够被执行。

所述代码更新脚本的配置方式可以是,所述电子设备100响应代码更新脚本的配置请求,根据接收到的项目组件的代码更新指令配置所述代码更新脚本,其中,所述代码更新指令中包括有跳转命令、echo命令以及gitpull命令。所述跳转命令和echo命令中均包括有所述项目组件的目录文件夹,所述gitpull命令可以用于执行将待更新代码更新到所述目标项目组件中的操作。作为一种实施方式,所述跳转命令、echo命令以及gitpull命令可以配置在同一行中,每个命令之间可通过分隔符号进行隔离,从而可以实现所述跳转命令、echo命令以及gitpull命令能够一起执行。

例如,请参阅图3,所有的项目组件均存放在component目录下,其中,每个文件夹中都可以理解为是一个托管的项目组件,为了便于对所有项目组件进行操作,所述代码更新脚本可以存放在顶层目录文件夹下,如图3所示,该代码更新脚本命名为pull.sh文件。后续如果需要对项目组件进行更新的时候可以直接调用该代码更新脚本来完成真实的更新操作逻辑。

所述代码更新脚本pull.sh文件中包括有component目录下所有项目组件的代码更新指令,每个项目组件的代码更新指令中均包括有该项目组间的目录文件夹,例如,douyutvplugin这个项目组件的代码更新指令中即包括有douyutvplugin。

另外,为了便于代码可以随意移动文件目录,还可以在所述代码更新脚本中定义一个用于标记所述代码更新脚本所在的脚本目录的标记变量,所述标记变量具体可以是:

source_root="/c/code/component"

如此,后续所有的路径都是基于source_root这个路径前缀来进行处理,当然,如果在后期需要对目录结构进行变更的时候,可以通过修改该前缀目录为目标脚本目录,所述电子设备100响应所述代码更新脚本中的标记变量的变更请求,从而将所述标记变量中的脚本目录变更到目标脚本目录,所述变更请求中包括有所述目标脚本目录,从而就可以非常快捷地完成整个项目目录结构的迁移。

基于上述配置,所述电子设备100在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令。其中,所述代码更新请求中包括有需要进行更新的目标项目组件,例如在包括图3中所示的所有项目组件时,根据所述代码更新请求从所述代码更新脚本中获取图3中所示的所有项目组件的代码更新指令。

步骤s220,根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹。

本实施例中,作为一种实施方式,首先可以获取从所述脚本目录到目标项目组件的目录文件夹的跳转路径,然后根据所述代码更新指令中的目标跳转命令,按照所述跳转路径进入对应的目标项目组件所在目录。以douyutvplugin为例,可以根据douyutvplugin的代码更新指令,获取所述douyutvplugin的代码更新指令中的目录文件夹,然后获取所述脚本目录到所述douyutvplugin的代码更新指令中的目录文件夹的跳转路径,由于在图3中,所述脚本目录和所述douyutvplugin的代码更新指令中的目录文件夹所在的目录处于component目录下,因此可以直接进入所述douyutvplugin的目录文件夹中。如果所述pull.sh文件与所述douyutvplugin的目录文件夹不在同一个目录下,也即不在所述component目录下,那么则需要从所述pull.sh文件所在的目录跳转进入到述component目录下的douyutvplugin的目录文件夹中。

所述目标跳转命令可以为cd$source_root/douyutvplugin,上述目标跳转命令表示进入到"/c/code/component/douyutvplugin"目录所在的文件夹下。

步骤s230,从所述目标项目组件对应的代码服务器300中下载待更新代码。

作为一种实施方式,在所述步骤s230之前,为了在代码更新时便于用户查看待更新的相关输出日志信息,确保整个更新过程中没有任何异常问题,所述电子设备100还可以根据所述代码更新指令中的echo命令,在控制台界面中输出当前的目标项目组件的目录文件夹,从而能够方便用户在控制台界面上查看到当前所在的目录文件,所述echo命令实现方式可以如下:

echo-e"\033[31m$source_root/douyutvplugin\033[0m"

步骤s240,调用所述git代码托管工具将每个待更新代码更新到该目标项目组件的目录文件夹中,以完成每个目标项目组件的代码更新。

本实施例中,可以根据所述代码更新指令中的gitpull命令,调用所述git代码托管工具将所述待更新代码更新到该目标项目组件的目录文件夹中,也即gitpull命令可以用于实现当前目标项目组件的代码更新操作。另外,为了能够使得上述三个命令能够一起执行,可以将上述三个代码编写在一行语句中,每个语句之间可以通过分隔符(例如,分号)来进行隔离,具体如下所示:

cd$source_root/douyutvplugin;echoe"\033[31m$source_root/douyutvplugin\033[0m";gitpull

更新下一个项目组件modulebaseapp的时候,与上述描述的方式类似,也即项目组件modulebaseapp的更新代码如下所示:

cd$source_root/modulebaseapp;echo-e"\033[31m$source_root/modulebaseapp\033[0m";gitpull

以此类推可以更新所有项目组件,这样就自动完成了所有项目组件的自动化更新。因此每次需要更新代码的时候,仅仅通过调用pull.sh脚本文件就能够实现所有项目组件代码的全自动更新,避免了传统方式中更新代码中所存在的各种缺点。

基于上述设计,通过根据每个项目组件的代码更新指令,分别进入对应的目标项目组件的目录文件夹,并从目标项目组件对应的代码服务器300中下载待更新代码,最后调用git代码托管工具将待更新代码更新到该目标项目组件的目录文件夹中,如此,能够有效克服传统方案中需手动来更新代码的问题,并且能够保证所有项目组件的代码同时更新,从而能够极大地提高了组件化过程中项目组件的管理,并且有效确保了代码的更新速度,显著提升开发效率。

进一步地,请参阅图4,本发明较佳实施例还提供一种代码更新装置200,所述装置包括:

获取模块210,用于在接收到代码更新请求后,根据所述代码更新请求从所述代码更新脚本中获取至少一个目标项目组件的代码更新指令,所述代码更新指令中包括有对应的目标项目组件的目录文件夹。

进入模块220,用于根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹。

下载模块230,用于从所述目标项目组件对应的代码服务器300中下载待更新代码。

更新模块240,用于调用所述git代码托管工具将所述待更新代码更新到该目标项目组件中,以完成每个目标项目组件的代码更新。

可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。

进一步地,请参阅图5,为本发明实施较佳实施例提供的电子设备100的一种结构示意框图。如图5所示,电子设备100可以由总线110作一般性的总线体系结构来实现。根据电子设备100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,电子设备100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现无线通信网络中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。

可以替换的,电子设备100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。

可替换的,电子设备100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的asic(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,电子设备100可以使用下述来实现:一个或多个fpga(现场可编程门阵列)、pld(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本发明通篇所描述的各种功能的电路的任意组合。

其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、dsp处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。

在图5中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于电子设备100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。

所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述代码更新装置200,所述处理器120可以用于执行所述代码更新装置200,以实现上述的代码更新方法。

综上所述,本发明实施例提供一种代码更新方法、装置、电子设备100及可读存储介质,电子设备100在接收到代码更新请求后,根据代码更新请求从代码更新脚本中获取至少一个目标项目组件的代码更新指令,然后根据每条代码更新指令,分别进入对应的目标项目组件的目录文件夹,并从目标项目组件对应的代码服务器300中下载待更新代码,最后调用git代码托管工具将待更新代码更新到该目标项目组件的目录文件夹中,以完成每个目标项目组件的代码更新。由此,能够有效克服传统方案中需手动来更新代码的问题,并且能够保证所有项目组件的代码同时更新,从而能够极大地提高了组件化过程中项目组件的管理,并且有效确保了代码的更新速度,显著提升开发效率。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等

需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1