一种代码构建和发布的方法及系统与流程

文档序号:11406800阅读:199来源:国知局
一种代码构建和发布的方法及系统与流程

本发明涉及软件版本控制技术领域,尤其涉及一种代码构建和发布的方法及系统。



背景技术:

现有代码的构建和发布的方案只是从仓库中拉取代码,构建发布,在整个过程中不能进行预设置,这就导致版本发布的时候需要预先在代码中修改一些与功能无关但与版本发布有关的设置。如果仓库有多个,需要修改的步骤较多,就需要在多个仓库上进行重复设置,大大增加了人工的工作量,而且容易发生人为错误,导致版本发布失败。



技术实现要素:

本发明的主要目的在于提出一种代码构建和发布的方法及系统,旨在将代码编译和发布真正做到自动化,减少人为操作带来的错误,且减少人力投入,节约成本。

为实现上述目的,本发明提供的一种代码构建和发布的方法,所述方法包括以下步骤:拉取程序代码:从版本控制系统的代码管理仓库中拉取需要进行版本编译与发布的程序的程序代码;新建预处理模板:将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容定制生成新的预处理模板;加载预处理模板:选择需要加载的若干预处理模板,并对若干所述预处理模板的生效顺序进行设置;应用预处理模板:将加载到的若干所述预处理模板按所述生效顺序应用到所述程序代码中,使变更生效;编译与发布:对预处理模板生效后的所述程序代码进行版本编译与发布。

优选地,所述新建预处理模板的步骤还包括:定制生成新的预处理模板时,既可以现有文件为宿主文件来生成新的预处理模板,亦可通过全新自定义来生成新的预处理模板。

优选地,所述新建预处理模板的步骤还包括:生成新的预处理模板后,需对新的预处理模板进行作用域设置,以对新的预处理模板进行分类存放。

优选地,所述应用预处理模板的步骤还包括:所述变更生效之后,根据设置将所述程序代码的变更同步到版本控制系统的代码管理仓库中。

优选地,所述应用预处理模板的步骤还包括:将所述程序代码的变更同步到版本控制系统的代码管理仓库之前,预先设置同步信息模板,以在将所述程序代码的变更同步到版本控制系统的代码管理仓库时自动加载和填充所述同步信息模板,以使得同步信息规范化。

此外,为实现上述目的,本发明还提出一种代码构建和发布的系统,所述系统包括:程序代码拉取模块,用于从版本控制系统的代码管理仓库中拉取需要进行版本编译与发布的程序的程序代码;预处理模板新建模块,用于将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容定制生成新的预处理模板;预处理模板加载模块,用于选择需要加载的若干预处理模板,并对若干所述预处理模板的生效顺序进行设置;预处理模板应用模块,用于将加载到的若干所述预处理模板按所述生效顺序应用到所述程序代码中,使变更生效;编译与发布模块,用于对预处理模板生效后的所述程序代码进行版本编译与发布。

优选地,所述预处理模板新建模块包括预处理模板生成单元,用于将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容或以现有文件为宿主文件来定制生成新的预处理模板、或通过全新自定义来定制生成新的预处理模板。

优选地,所述预处理模板新建模块包括作用域设置单元,用于生成新的预处理模板后,对新的预处理模板进行作用域设置,以对新的预处理模板进行分类存放。

优选地,所述预处理模板应用模块包括:应用生效单元,用于将加载到的若干所述预处理模板按所述生效顺序应用到所述程序代码中,使变更生效;同步单元,用于所述变更生效之后,根据设置将所述程序代码的变更同步到版本控制系统的代码管理仓库中。

优选地,所述预处理模板应用模块还包括同步信息模板设置单元,用于将所述程序代码的变更同步到版本控制系统的代码管理仓库之前,预先设置同步信息模板,以在将所述程序代码的变更同步到版本控制系统的代码管理仓库时自动加载和填充所述同步信息模板,以使得同步信息规范化。

本发明提出的一种代码构建和发布的方法及系统,其在现有方案的基础上,增加了前处理部分,即在拉取程序代码步骤之后、编译与发布步骤之前依次增加了新建预处理模板步骤、加载预处理模板步骤以及应用预处理模板步骤,使其在每次进行代码构建和发布时,可通过加载已有的全局的预处理模板,或通过自定义本次编译需要的新的预处理模板来完成与版本功能无关但与版本发布有关的设置,使之真正做到自动化,减少人为操作带来的错误,且减少人力投入,节约成本。

附图说明

图1为本发明第一实施例代码构建和发布的方法的流程框图。

图2为本发明第二实施例代码构建和发布的系统的结构框图。;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

如图1所示,本发明第一实施例提出一种代码构建和发布的方法,包括以下步骤:

步骤s1:拉取程序代码:从版本控制系统的代码管理仓库中拉取需要进行版本编译与发布的程序的程序代码。

具体地,在对程序进行新的版本编译与发布时,需先获得程序的程序代码,一般而言,我们会将程序的程序代码存放在vss、svs、svn、git等主流的版本控制系统的代码管理仓库中,因而,在进行代码构建和发布时,需先从相应存放的版本控制系统的代码管理仓库中拉取到需要进行版本编译与发布的程序的程序代码。

步骤s2:新建预处理模板:将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容定制生成新的预处理模板。

具体地,由于每一程序在进行新版本发布前,均需要对之进行一些与程序功能无关但与程序版本发布有关的设置,如程序版本命名设置等,而为了真正做到代码构建和发布的自动化,减少人为操作带来的错误,且减少人力投入,节约成本,我们可将这些需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容定制生成新的预处理模板。而在定制生成新的预处理模板时,既可以现有文件为宿主文件来生成新的预处理模板,亦可通过全新自定义来生成新的预处理模板。其中,该宿主文件一般为property、xml等配置文件。通过打开一个现有的配置文件(即宿主文件),并根据需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容对之进行修改保存,以定制生成新的配置文件(即新的预处理模板)。或者通过新建一个配置文件,根据需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容对之进行全新自定义并保存,以定制生成新的配置文件(即新的预处理模板)。

另外,生成新的预处理模板后,需对新的预处理模板进行作用域设置,以对新的预处理模板进行分类存放。预处理模板的作用域一般有global(全局)和local(本地)两种,如果预处理模板定义为global属性,则预处理模板转为全局预处理模板,存放入gtpool(全局预处理模板池)中,可供别的项目共用。如果预处理模板定义为local属性,则预处理模板转为本地预处理模板,存放入本项目的ltpool(本地预处理模板池)。

步骤s3:加载预处理模板:选择需要加载的若干预处理模板,并对若干所述预处理模板的生效顺序进行设置。

具体的,选择需要加载的预处理模板时,既可以选择已有的全局预处理模板,也可以选择本项目编译时新建的预处理模板(包括全局预处理模板和本地预处理模板),当选择需要加载的预处理模板多于一个时,还需对这些预处理模板的生效顺序进行设置。这样一来,可以实现连续预设置的目的,将需要连续预设置的步骤分解成几个预处理模板,让它们保持一定的顺序,即可实现连续预设置的目的。

步骤s4:应用预处理模板:将加载到的若干所述预处理模板按所述生效顺序应用到所述程序代码中,使变更生效。

具体地,当选择完需要加载的若干预处理模板,并对若干加载到的预处理模板的生效顺序进行设置后,需要将加载到的若干预处理模板按其设置好的生效顺序应用到本项目需要进行版本编译与发布的程序的程序代码中,使变更生效。而当变更生效之后,根据设置将该程序代码的变更同步到版本控制系统的代码管理仓库中,若存放原程序代码的代码管理仓库有多个,此时,可将该程序代码的变更同时同步到多个代码管理仓库中,如此一来,便无需在多个代码管理仓库上进行重复设置,进而大大减少了人工的工作量。

另外,在将该程序代码的变更同步到版本控制系统的代码管理仓库之前,为了使得同步信息规范化,可预先设置同步信息模板。如此一来,当将该程序代码的变更同步到版本控制系统的代码管理仓库,便可自动加载和填充该同步信息模板,以使得同步信息规范化。

步骤s5:编译与发布:对预处理模板生效后的所述程序代码进行版本编译与发布。

具体地,预处理模板生效后的该程序代码便完成了每一程序在进行新版本发布前,需对之进行一些与程序功能无关但与版本发布有关的设置,此时,便可对该程序代码进行常规的编译与发布,如对该程序代码进行代码测试并修复发现的漏洞后对之进行打包发布,或在该程序代码的基础上添加新的功能代码并对之测试合格后进行打包发布等。

如图2所示,本发明第二实施例提出一种代码构建和发布的系统100,该系统100包括程序代码拉取模块110、预处理模板新建模块120、预处理模板加载模块130、预处理模板应用模块140以及编译与发布模块150。

其中,程序代码拉取模块110主要用于从版本控制系统的代码管理仓库中拉取需要进行版本编译与发布的程序的程序代码。

具体地,在对程序进行新的版本编译与发布时,我们会先从vss、svs、svn、git等主流的版本控制系统的代码管理仓库中将之前存放的需要进行版本编译与发布的程序的程序代码拉取到本地开发系统中,以便进行版本编译与发布。

预处理模板新建模块120主要用于将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容定制生成新的预处理模板。

具体地,预处理模板新建模块120包括预处理模板生成单元121及作用域设置单元122,工作时,预处理模板生成单元121首先将需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容或以现有文件为宿主文件来定制生成新的预处理模板、或通过全新自定义来定制生成新的预处理模板,该宿主文件一般为property、xml等配置文件,预处理模板生成单元121通过打开一个现有的配置文件(即宿主文件),并根据需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容对之进行修改保存,以定制生成新的配置文件(即新的预处理模板)。或者通过新建一个配置文件,根据需要编译进版本的、与程序功能无关的、但与程序版本发布有关的内容对之进行全新自定义并保存,以定制生成新的配置文件(即新的预处理模板)。当预处理模板生成单元121生成新的预处理模板后,作用域设置单元122便开始对新的预处理模板进行作用域设置,以对新的预处理模板进行分类存放。预处理模板的作用域一般有global(全局)和local(本地)两种,如果预处理模板定义为global属性,则预处理模板转为全局预处理模板,存放入gtpool(全局预处理模板池)中,可供别的项目共用。如果预处理模板定义为local属性,则预处理模板转为本地预处理模板,存放入本项目的ltpool(本地预处理模板池)。

预处理模板加载模块130主要用于选择需要加载的若干预处理模板,并对若干所述预处理模板的生效顺序进行设置。

具体地,选择需要加载的预处理模板时,既可以选择已有的全局预处理模板,也可以选择本项目编译时新建的预处理模板(包括全局预处理模板和本地预处理模板),当选择需要加载的预处理模板多于一个时,还需对这些预处理模板的生效顺序进行设置。这样一来,可以实现连续预设置的目的,将需要连续预设置的步骤分解成几个预处理模板,让它们保持一定的顺序,即可实现连续预设置的目的。

预处理模板应用模块140主要用于将加载到的若干所述预处理模板按所述生效顺序应用到所述程序代码中,使变更生效。

具体地,预处理模板应用模块140包括应用生效单元141、同步单元142及同步信息模板设置单元143,工作时,应用生效单元141首先将加载到的若干预处理模板按其设置的生效顺序应用到需要进行版本编译与发布的程序的程序代码中,使变更生效。而当变更生效之后,同步单元142根据设置将该程序代码的变更同步到版本控制系统的代码管理仓库中,若存放原程序代码的代码管理仓库有多个,此时,可将该程序代码的变更同时同步到多个代码管理仓库中,如此一来,便无需在多个代码管理仓库上进行重复设置,进而大大减少了人工的工作量。而在将该程序代码的变更同步到版本控制系统的代码管理仓库之前,为了使得同步信息规范化,同步单元142可预先进行同步信息模板设置,如此一来,当将该程序代码的变更同步到版本控制系统的代码管理仓库,便可自动加载和填充该同步信息模板,以使得同步信息规范化。

编译与发布模块150主要用于对预处理模板生效后的所述程序代码进行版本编译与发布。

具体地,当预处理模板生效后,该程序代码便完成了每一程序在进行新版本发布前,需对之进行一些与程序功能无关但与版本发布有关的设置,此时,便可通过编译与发布模块150对该程序代码进行常规的编译与发布,如对该程序代码进行代码测试并修复发现的漏洞后对之进行打包发布,或在该程序代码的基础上添加新的功能代码并对之测试合格后进行打包发布等。

本发明提出的一种代码构建和发布的方法及系统,其在现有方案的基础上,增加了前处理部分,即在拉取程序代码步骤之后、编译与发布步骤之前依次增加了新建预处理模板步骤、加载预处理模板步骤以及应用预处理模板步骤,使其在每次进行代码构建和发布时,可通过加载已有的全局的预处理模板,或通过自定义本次编译需要的新的预处理模板来完成与版本功能无关但与版本发布有关的设置,使之真正做到自动化,减少人为操作带来的错误,且减少人力投入,节约成本。

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

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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