代码编译方法、装置、计算机设备和存储介质

阅读: 评论:0

著录项
  • CN202210900137.7
  • 20220728
  • CN115237422A
  • 20221025
  • 深圳市科脉技术股份有限公司
  • 陈宏亮;肖先辉;谢冲
  • G06F8/41
  • G06F8/41 G06F8/71

  • 广东省深圳市前海深港合作区南山街道兴海大道3044号信利康大厦19A、19C-F、20A-H
  • 广东(44)
  • 华进联合专利商标代理有限公司
  • 聂榕
摘要
本申请涉及一种代码编译方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:接收用户终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识;从管理服务器中获取版本信息数据,版本信息数据包含待编译代码对应的各修改版本代码的版本信息;根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码;若存在,则遍历各冲突修改版本代码,执行冲突确认命令,将编译代码标识对应的最新修改版本代码确定为待编译代码对应的目标编译代码;从管理服务器中获取目标编译代码进行编译,得到执行文件。采用本方法能够提高了开发测试工作流程的顺畅性,有效保障了后续软件开发工作的速度。
权利要求

1.一种代码编译方法,其特征在于,所述方法包括:

接收用户终端发送的编译申请指令,根据所述编译申请指令确定待编译代码的编译代码标识;

从管理服务器中获取版本信息数据,所述版本信息数据包含所述待编译代码对应的各修改版本代码的版本信息;

根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码;

若存在,则遍历各所述冲突修改版本代码,执行冲突确认命令,将所述编译代码标识对应的最新修改版本代码确定为所述待编译代码对应的目标编译代码;

从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件。

2.根据权利要求1所述的方法,其特征在于,所述版本信息包括各所述修改版本代码的代码标识与状态信息;

所述根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码,包括:

将与所述编译代码标识一致的代码标识确定为修改代码标识;

获取各所述修改代码标识对应的状态信息;

若各所述状态信息中存在冲突状态信息,则确定所述待编译代码存在冲突修改版本代码,所述冲突状态信息对应的修改版本代码为所述冲突修改版本代码。

3.根据权利要求2所述的方法,其特征在于,所述版本信息还包括版本号;

所述将所述编译代码标识对应的最新修改版本代码更新为所述待编译代码的目标编译代码,包括:

查各所述修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,所述目标编译版本号对应的修改版本代码确定为最新修改版本代码;

将所述最新修改版本代码确定为所述待编译代码对应的目标编译代码。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

获取所述待编译代码在前一次编译完成后,所述管理服务器记录的管理版本号;

将所述编译代码版本号与所述管理版本号进行对比;

若所述编译代码版本号与所述管理版本号一致,则生成第一提示信息,所述第一提示信息用于提示所述待编译代码不存在对应的修改版本代码;

将所述第一提示信息发送至终端界面进行展示。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

若所述编译版本号与所述管理版本号不一致,根据所述编译代码标识从所述管理服务器中获取所述编译代码标识对应的修改内容数据;

对所述修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,所述编译代码标识对应的各修改版本代码的修改内容;

将所述修改内容展示发送至所述终端界面进行展示。

6.根据权利要求4所述的方法,其特征在于,所述从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件包括:

删除所述待编译代码在本地数据库中对应的本地文件,从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件。

7.根据权利要求1至6任意一项所述的方法,其特征在于,所述方法还包括:

对所述目标编译代码的编译过程进行实时监测;

当监测到编译失败时,生成编译失败提示信息;

当监测到编译成功时,生成编译成功提示信息,将得到的所述执行文件发送至指定目录。

8.一种代码编译装置,其特征在于,所述装置包括:

接收模块,用于接收用户终端发送的编译申请指令,根据所述编译申请指令确定待编译代码的编译代码标识;

获取模块,用于从管理服务器中获取版本信息数据,所述版本信息数据包含所述待编译代码对应的各修改版本代码的版本信息;

判断模块,用于根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码;

更新模块,用于若存在,则遍历各所述冲突修改版本代码,执行冲突确认命令,将所述编译代码标识对应的最新修改版本代码更新为所述待编译代码的目标编译代码;

编译模块,用于从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书
技术领域

本申请涉及软件测试技术领域,特别是涉及一种代码编译方法、装置、计算机设备、存储介质和计算机程序产品。

PowerBuilder是客户机/服务器结构下,基于Windows3x、Windows95和Windows NT的一个集成化开发工具,它包含了一个直观的图形界面和可扩展的面向对象的编程语言,提供与当前流行的大型数据库的接口。通过PowerBuilder可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序,其开发出的程序广泛应用于零售、医药、生产等各个领域。SVN(Subversion)是一个开发源代码的版本控制系统,可用于支持多人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

PowerBuilder与SVN组成了目前软件开发中非常常见的一套开发框架,开发组可通过SVN管理PowerBuilder代码,当编码开发完毕后,手工同步完SVN代码之后,再由测试人员手动运行PowerBuilder工具里面的编译功能生成执行文件。现有技术的编译过程中,大部分步骤都需要人工参与,而一个项目开发,可能需要几十甚至上百次的编译,人工编译不仅耗时耗力,在编译过程中也容易出现编译不及时而影响后续软件开发工作的进程。

基于此,有必要针对上述技术问题,提供一种能够自动进行编译,减少编译过程的人工操作,提高开发测试工作流程顺畅性的代码编译方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种代码编译方法,所述方法包括:

接收用户终端发送的编译申请指令,根据所述编译申请指令确定待编译代码的编译代码标识;

从管理服务器中获取版本信息数据,所述版本信息数据包含所述待编译代码对应的各修改版本代码的版本信息;

根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码;

若存在,则遍历各所述冲突修改版本代码,执行冲突确认命令,将所述编译代码标识对应的最新修改版本代码确定为所述待编译代码对应的目标编译代码;

从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件。

在其中一个实施例中,所述版本信息包括各所述修改版本代码的代码标识与状态信息;

所述根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码,包括:

将与所述编译代码标识一致的代码标识确定为修改代码标识;

获取各所述修改代码标识对应的状态信息;

若各所述状态信息中存在冲突状态信息,则确定所述待编译代码存在冲突修改版本代码,所述冲突状态信息对应的修改版本代码为所述冲突修改版本代码。

在其中一个实施例中,所述版本信息还包括版本号;

所述将所述编译代码标识对应的最新修改版本代码更新为所述待编译代码的目标编译代码,包括:

查各所述修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,所述目标编译版本号对应的修改版本代码确定为最新修改版本代码;

将所述最新修改版本代码确定为所述待编译代码对应的目标编译代码。

在其中一个实施例中,所述方法还包括:

获取所述待编译代码在前一次编译完成后,所述管理服务器记录的管理版本号;

将所述编译代码版本号与所述管理版本号进行对比;

若所述编译代码版本号与所述管理版本号一致,则生成第一提示信息,所述第一提示信息用于提示所述待编译代码不存在对应的修改版本代码;

将所述第一提示信息发送至终端界面进行展示。

在其中一个实施例中,所述方法还包括:

若所述编译版本号与所述管理版本号不一致,根据所述编译代码标识从所述管理服务器中获取所述编译代码标识对应的修改内容数据;

对所述修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,所述编译代码标识对应的各修改版本代码的修改内容;

将所述修改内容展示发送至所述终端界面进行展示。

在其中一个实施例中,所述从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件包括:

删除所述待编译代码在本地数据库中对应的本地文件,从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件。

在其中一个实施例中,所述方法还包括:

对所述目标编译代码的编译过程进行实时监测;

当监测到编译失败时,生成编译失败提示信息;

当监测到编译成功时,生成编译成功提示信息,将得到的所述执行文件发送至指定目录。

第二方面,本申请还提供了一种代码编译装置,所述装置包括:

接收模块,用于接收用户终端发送的编译申请指令,根据所述编译申请指令确定待编译代码的编译代码标识;

获取模块,用于从管理服务器中获取版本信息数据,所述版本信息数据包含所述待编译代码对应的各修改版本代码的版本信息;

判断模块,用于根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码;

更新模块,用于若存在,则遍历各所述冲突修改版本代码,执行冲突确认命令,将所述编译代码标识对应的最新修改版本代码更新为所述待编译代码的目标编译代码;

编译模块,用于从所述管理服务器中获取所述目标编译代码进行编译,得到执行文件。

第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。

第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。

上述代码编译方法、装置、计算机设备、存储介质和计算机程序产品,在接收到用户终端发送的编译申请指令时,根据编译申请指令确定待编译代码的编译代码标识,从管理服务器中获取版本信息数据,由于版本信息数据中包含有管理服务器中所有修改版本代码的版本信息,因此可以根据版本数据信息以及编译代码标识,判断待编译代码是否存在对应的冲突修改版本代码,当存在冲突修改版本代码时,无需人工进行操作,自动遍历各冲突修改版本代码,依次执行冲突确认命令,将编译代码标识对应的最新修改版本代码更新为待编译代码的目标编译代码,从管理服务器中获取目标编译代码进行编译得到执行文件。整个编译过程不需要人工干预,大大节省了软件开发时在编译上面的人力投入,提高了开发测试工作流程的顺畅性,有效保障了后续软件开发工作的速度。

图1为一个实施例中代码编译方法的应用环境图;

图2为一个实施例中代码编译方法的流程示意图;

图3为一个实施例中根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码步骤的流程示意图;

图4为另一个实施例中代码编译方法的流程示意图;

图5为另一个实施例中代码编译方法的流程示意图;

图6为另一个实施例中代码编译方法的流程示意图;

图7为另一个实施例中代码编译方法的流程示意图;

图8为一个实施例中代码编译装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的代码编译方法,可以应用于如图1所示的应用环境中。其中,自动编译工具104通过网络分别与用户终端102和管理服务器106进行通信。数据存储系统可以存储管理服务器106需要处理的数据。数据存储系统可以集成在管理服务器106上,也可以放在云上或其他网络服务器上。自动编译工具104接收用户终端102发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识,从管理服务器106中获取版本信息数据。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑。服务器104可以用独立的服务器或者是多个服务器组成的服务器集来实现。

在一个实施例中,如图2所示,提供了一种代码编译方法,以该方法应用于图1中的自动编译工具为例进行说明,包括以下步骤:

步骤202,接收用户终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识。

其中,用户终端为测试人员所使用的终端。测试人员在终端上触发对相应代码的编译开启操作,生成对应的编译申请指令向自动编译工具申请对相应代码进行编译,可以理解的,编译申请指令中携带有待编译代码的编译代码标识。终端通过网络将编译申请指令发送至自动编译工具。

其中,待编译代码是开发人员为了生成执行文件所编写和修改的项目代码,通过对待编译代码进行编译可以得到执行文件。

其中,代码标识是用于标记各个代码的标识信息,每个编写或修改后的代码都会携带有代码标识,可以理解的,代码标识与代码需要生成的执行文件相关。由于开发人员在完成一个可以生成执行文件的项目代码的过程中,可能需要多次对编写的代码进行修改,对用于生成同一个执行文件的代码都设置相同的代码标识。编译代码标识为待编译代码对应的代码标识。

具体地,自动编译工具接收用户终端发送的编译申请指令,从编译申请指令中确定待编译代码的编译代码标识。

步骤204,从管理服务器中获取版本信息数据,版本信息数据包含待编译代码对应的各修改版本代码的版本信息。

其中,管理服务器是对开发人员编写的代码进行集中式管理的服务器,可以理解的管理服务器支持多人共同开发同一个执行文件的项目代码,每个项目代码的开发人员都可以访问管理服务器,从管理服务器上获取所需的代码资源,并将自身编写或修改后的代码上传,供其他开发人员进行获取访问。

其中,版本信息数据是管理服务器中存储和记录的所有代码文件的版本信息的集合。可以理解的,管理服务器上的代码文件可以是任何格式的文件,如*.java、*.cpp、*.srw、*.pbl,svn等,管理服务器只负责存储和记录版本,各个开发工具(如JAVA、C++、PowerBuilder)会将获取到的文件加载到工作组去。管理服务器将所有文件的版本信息集中后生成版本信息数据。版本信息数据可以为任意一种格式的文件,例如XML格式文件。版本信息包括但不限于文件版本号、文件来源路径、文件存储路径、文件状态、文件对应的代码标识等。

其中,在生成待编译代码的过程中,开发人员可能会对编写的代码进行多次修改,每次开发人员将修改后的版本上传至管理服务器时,管理服务器将自动记录各修改版本代码的版本信息。

具体地,自动编译工具从管理服务器中获取管理服务器中存储与记录的版本信息数据,版本数据信息中包含有待编译代码对应的各个修改版本代码的版本信息。

步骤206,根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码。

其中,若同一个执行文件的开发代码被修改更新多次,在进行编译时,最终使用的代码只能有一个,当系统确定了最终使用的待编译代码对应的修改版本代码时,其他的修改版本代码均为冲突修改版本代码。

具体地,自动编译工具根据编译代码标识从版本信息数据中获取待编译代码对应的各修改版本代码的版本信息,根据各修改版本代码的版本信息确定是否存在冲突修改版本代码。

步骤208,若存在,则遍历各冲突修改版本代码,执行冲突确认命令,将编译代码标识对应的最新修改版本代码确定为待编译代码的目标编译代码。

其中,编译代码标识对应的最新修改版本代码为开发人员上传的最后一版修改代码,由于管理服务器对于同一执行文件对应的修改代码设置有权限锁,当开发人员从管理服务器上下载最新版本的修改代码进行后续编译修改时,管理服务器会对该执行文件对应的修改代码上锁,使其他开发人员无法再下载同一修改代码文件进行后续编译修改,这样可以保证最后更新的最新修改版本代码为最终修改完成的代码。若测试人员需要生成执行文件,则可以将该执行文件对应的最新修改版本代码更新为待编译代码的目标编译代码,对目标编译代码进行编译得到执行文件。

其中,冲突确认指令是用于确认不编译冲突修改版本代码的动作指令。

具体地,在使用传统编译工具对代码进行编译时,若存在冲突修改版本代码,传统编译工具无法自动确认是否直接放弃对冲突修改版本代码的编译工作,而需要人为手动确认,整个过程耗时耗力,大大降低了执行文件的生成速度。本实施例中的自动编译工具在确定待编译代码存在冲突修改版本代码时,直接自动遍历各冲突修改版本代码,确定对每个冲突修改版本代码都确认不进行编译,只编译最新修改版本代码即可。

步骤210,从管理服务器中获取目标编译代码进行编译,得到执行文件。

具体地,自动编译工具确定了目标编译代码后,从管理服务器中获取目标编译代码到工具上进行编译,得到对应的执行文件。

上述代码编译方法,在接收到用户终端发送的编译申请指令时,根据编译申请指令确定待编译代码的编译代码标识,从管理服务器中获取版本信息数据,由于版本信息数据中包含有管理服务器中待编译代码对应的所有修改版本代码的版本信息,因此可以根据版本数据信息以及编译代码标识,判断待编译代码是否存在对应的冲突修改版本代码,当存在冲突修改版本代码时,无需人工进行操作,自动遍历各冲突修改版本代码,依次执行冲突确认命令,将编译代码标识对应的最新修改版本代码更新为待编译代码的目标编译代码,从管理服务器中获取目标编译代码进行编译得到执行文件。整个编译过程不需要人工干预,大大节省了软件开发时在编译上面的人力投入,提高了开发测试工作流程的顺畅性,有效保障了后续软件开发工作的速度。

在一个实施例中,如图3所示,版本信息包括各修改版本代码的代码标识与状态信息。根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码包括:

步骤302,将与编译代码标识一致的代码标识确定为修改代码标识。

具体地,自动编译工具根据编译代码标识,查版本信息数据,将版本信息数据中与编译代码标识一致的代码标识确定为修改代码标识。

步骤304,获取各修改代码标识对应的状态信息。

其中,状态信息为反映代码当前状态的信息数据,可以理解的,在开发人员将代码上传至管理服务器时,管理服务器根据开发人员上传的代码的版本信息,确定当前上传的代码与其他修改代码的状态信息。例如若当前上传的代码之前不存在其他的修改版本,则当前上传的代码的状态信息为正常normal;若当前上传的代码之前存在其他的修改版本,则当前上传的代码的状态信息为正常normal,其他的修改版本代码的状态信息更新为冲突conflicted。

具体地,自动编译工具获取所有修改代码标识对应的状态信息。

步骤306,若各状态信息中存在冲突状态信息,则确定待编译代码存在冲突修改版本代码,冲突状态信息对应的修改版本代码为冲突修改版本代码。

具体地,若自动编译工具确定修改代码标识对应的状态信息中存在冲突状态信息,则说明该编译代码标识对应的待编译代码经过了多次修改,存在有多个修改版本的冲突修改版本代码。

本实施例中,通过在各代码的版本信息中设置状态信息,并根据开发人员上传的代码次数实时更新管理服务器中各代码的状态信息,可以使自动编译工具快速从众多代码版本信息中确定待编译代码是否存在冲突修改版本代码,使整个自动编译过程更加迅速,有效保障了后续软件开发工作的速度。

进一步的,在其中一个实施例中,版本信息还包括版本号。将编译代码标识对应的最新修改版本代码更新为待编译代码的目标编译代码,包括:查各修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,目标编译版本号对应的修改版本代码确定为最新修改版本代码;将最新修改版本代码确定为待编译代码对应的目标编译代码。

其中,版本号是用于确定管理服务器中同一执行文件对应的各修改代码的修改顺序的标号。在管理服务器中,开发人员每修改一次同一执行文件对应的待编译代码,或,测试人员每编译一次同一执行文件对应的待编译代码,管理服务器都会为该代码生成相应的版本号并记录。可以理解的,随着修改次数或编译次数的增加,版本号对应的数值会逐渐增大。例如,若初始代码版本号为100,修改一次后,修改代码的版本号为101,以此类推。

具体地,自动编译工具从各修改代码标识对应的版本信息中,查各修改代码标识对应的版本号,由于每次修改或编译,版本号的数值都会逐渐增大,因此数值最大的版本号即为最新修改版本代码对应的版本号,将最大的版本号确定为目标编译版本号,将最大版本号对应的最新修改版本代码确定为待编译代码对应的目标编译代码。

本实施例中,通过查各修改版本代码对应的版本号,可以根据各版本号的数值大小迅速确定最新修改版本代码,将最新版本代码确定为待编译代码对应的目标编译代码,为后续对目标编译代码进行编译提供了数据基础。

在一个实施例中,如图4所示,代码编译方法还包括以下步骤:

步骤402,获取待编译代码在前一次编译完成后,管理服务器记录的管理版本号。

其中,测试人员每次对代码进行编译后,管理服务器将为该代码生成管理版本号并记录。管理版本号可以用于记录代码的编译次数。

例如,测试人员获取管理服务器中的一个代码进行编译后,管理服务器生成该代码的管理版本号为100,若后续开发人员A从管理服务器中下载了100代码进行修改开发,则开发人员A修改后的代码会被记录为101;若开发人员B从管理服务器中下载101代码进行修改开发,则开发人员B修改后的代码会被记录为102,以此类推。而测试人员在挑选目标编译代码进行编译时,若此时最新的修改版本代码为开发人员A上传的105代码,则代码版本号为101到104的代码均会被认定为冲突代码,其对应的状态信息会被更新为冲突conflicted。测试人员将105代码确定为目标编译代码,对其进行编译,此时管理服务器将编译完成后的代码105的版本号修改为200,200即为新的管理版本号,后续开发人员会在200代码的基础上对待编译代码进行修改。

具体地,自动编译工具获取待编译代码对应的前一次编译完成后,管理服务器记录的管理版本号。

步骤404,将编译代码版本号与管理版本号进行对比。

具体地,自动编译工具将本次目标编译代码对应的编译代码版本号与管理版本号进行对比,确定编译代码版本号与管理版本号是否一致。

步骤406,若编译代码版本号与管理版本号一致,则生成第一提示信息,第一提示信息用于提示待编译代码不存在对应的修改版本代码。

具体地,自动编译工具若确定当前目标编译代码对应的编译代码版本号与前一次编译完成后,管理服务器记录的待编译代码的管理版本号一致,例如编译代码版本号为100,前一次编译完成后,管理服务器记录的待编译代码的管理版本号也为100,则说明自前一次编译完成后,并未有开发人员对该待编译代码进行开发或修改,此时自动编译工具将生成第一提示信息,第一提示信息用于提示测试人员,该待编译代码不存在对应的修改版本代码。

步骤408,将第一提示信息发送至终端界面进行展示。

具体地,自动编译工具将生成的第一提示信息发送终端界面,检测人员可以通过终端界面接收到第一提示信息并做出相应处理。

在本实施例中,通过校验当次编译的目标编译代码的编译版本号与待编译代码前一次编译结束后生成的管理代码版本号的一致性,可以快速确定在两次编译之间,待编译代码是否发生了修改,帮助测试人员快速知晓相应代码的修改进度,提高测试工作流程的速度。

在一个实施例中,如图5所示,代码编译方法还包括以下步骤:

步骤502,若编译版本号与管理版本号不一致,根据编译代码标识从管理服务器中获取编译代码标识对应的修改内容数据。

其中,编译代码标识对应的修改内容数据为开发人员对前一次编译完成后的代码进行了修改的所有修改内容数据。具体地,在开发人员修改完代码并将代码上传至管理服务器时,管理服务器会将当前上传代码的修改内容进行存储,将属于同一代码标识的代码的修改内容存储在一个文件中得到修改内容数据。可以理解的,修改内容数据的格式本申请不作限定,例如,修改内容数据可以为XML格式的文件。

具体地,若自动编译工具在确定当次目标编译代码对应的编译版本号与前一次编译完成后生成的该待编译代码的管理版本号不一致,则说明从前一次编译完成后到当前时刻,开发人员对该待编译代码进行了开发或修改。根据编译代码标识从管理服务器中获取该编译代码便是对应的修改内容数据。

自助编译工具需要根据编译代码标识,从管理服务器中确定出与编译代码标识一致的所有修改代码标识对应的所有修改版本代码,从而获取所有修改版本代码的修改内容。

具体地,若自动编译工具确定当次目标编译代码对应的编译版本号与前一次编译完成后生成的该待编译代码的管理版本号不一致,则说明从前一次编译完成后到当前时刻,开发人员对该待编译代码进行了开发或修改。自动编译工具根据编译代码标识从管理服务器中获取编译代码标识对应的修改内容数据。

步骤504,对修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容。

具体地,自动编译工具对获取到的修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容。可以理解的,数据处理过程为对修改内容数据格式进行解码的过程,具体解码过程根据修改内容数据的实际格式而定,本申请对此不作限定。

步骤506,将修改内容展示发送至终端界面进行展示。

具体地,自动编译工具将获取到的修改内容发送至测试人员的终端界面进行展示。

在本实施例中,自动编译工具通过编译代码标识从管理服务器中获取到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容,并将修改内容展示发送至终端界面进行展示,使测试人员能够直观简洁的知晓开发人员在前后两次编译过程中对待编译代码进行的修改位置,以及修改内容,避免出现当前编译的目标编译代码存在遗漏修改内容的情况产生。

传统编译工具在从管理服务器中获取目标编译代码进行编译时,由于传统编译工具中保存有上一次编译完成后的代码文件,因此有可能会出现获取不成功也不会报错的情况产生,此时传统编译工具会误以为代码已正常获取,并使用上一次编译完成后的代码文件再次进行编译,导致编译后的程序异常,直至测试人员通过校对修改内容才能发现相应代码未获取,大大降低了代码编译的速度。

基于此,在一个实施例中,如图6所示,提供了一种代码编译方法,包括以下步骤:

步骤602,接收用户终端发送的编译申请指令,根据所述编译申请指令确定待编译代码的编译代码标识。

步骤604,从管理服务器中获取版本信息数据,所述版本信息数据包含所述待编译代码对应的各修改版本代码的版本信息。

步骤606,根据所述版本信息数据与所述编译代码标识,判断所述待编译代码是否存在冲突修改版本代码。

步骤608,若存在,则遍历各所述冲突修改版本代码,执行冲突确认命令,将所述编译代码标识对应的最新修改版本代码确定为所述待编译代码对应的目标编译代码。

可以理解的,步骤602至步骤608的具体内容在前文对步骤202至步骤208中进行说明的部分已经详细记载,本申请在此不再赘述。

步骤610,删除待编译代码在本地数据库中对应的本地文件,从管理服务器中获取目标编译代码进行编译,得到执行文件。

具体地,自动编译工具删除待编译代码在本地数据库中对应存储的本地文件后,再从管理服务器中获取目标编译代码进行编译,得到执行文件。

本实施例中的方法,在从管理服务器中获取目标编译代码进行编译之前,先删除待编译代码在本地数据库中对应存储的本地文件,可以有效避免代码获取失误而无法察觉的情况产生,提高了代码编译的准确率,保障了后续软件开发工作的速度。

在传统代码编译过程中,若编译时长较长,期间如果出现报错就会导致编译停止,需要测试人员手动去检查编译是否完成,若未完成,需要重复代码编译的整个流程,进行第二次编译,整个过程将会耗费大量时间与人力资源。

基于此,在一个实施例中,代码编译方法还包括:对目标编译代码的编译过程进行实时监测;当监测到编译失败时,生成编译失败提示信息;当监测到编译成功时,生成编译成功提示信息,将得到的执行文件发送至指定目录。

具体地,自动编译工具还可以对目标编译代码的编译过程进行实时监测,当监测到编译失败时,将会生成编译失败提示信息,通知相关测试人员进行处理。当监测到编译成功时,生成编译成功提示信息通知相关测试人员编译完成,并向相关测试人员展示相应编译修改内容,同时将得到的执行文件发送至指定发布目录进行保存。

本实施例中的方法,通过对目标编译代码的编译过程进行实时监测,在监测到代码编译失败时,及时生成提示信息提醒测试人员进行相关处理,避免出现长时间未处理而导致的编译停止情况产生。若监测到代码编译成功,也生成提示信息告知相关测试人员,同时将得到的执行文件发送至指定目录,完成编译。使整个编译过程更加自动化,大大节省了软件开发时在编译上面的人力投入,提高了开发测试工作流程的顺畅性,有效保障了后续软件开发工作的速度。

在一个实施例中,如图7所示,提供了一种代码编译方法,该方法涉及到用户终端与SVN服务器SVN,用户终端上集成有PowerBuilder编译软件,编译软件中配置有自动编译工具。

具体地,测试人员通过点击PowerBuilder界面上的自动编译工具按钮提交编译申请。自动编译工具接收测试人员终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识A。自动编译工具从SVN服务器中获取SVN服务器所有存储的文件的XML格式的版本信息数据A.XML,对版本信息数据进行解码,根据编译代码标识,从版本信息数据中获取待编译代码的所有版本代码的版本信息,版本信息包括文件路径,版本号,状态(normal为正常,conflicted为冲突)。

自动编译工具根据编译代码标识,查版本信息数据,将版本信息数据中与编译代码标识一致的代码标识确定为修改代码标识,获取所有修改代码标识对应的状态信息,若自动编译工具确定修改代码标识对应的状态信息中存在冲突状态信息,则说明该编译代码标识对应的待编译代码经过了多次修改,存在有多个修改版本的冲突修改版本代码。自动编译工具自动遍历各冲突修改版本代码,对每个冲突修改版本代码都确认不进行编译。

在执行完冲突确认指令后,自动编译工具获取修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,将目标编译版本号对应的修改版本代码确定为目标编译代码。

获取待编译代码A在前一次编译完成后,SVN服务器记录的管理版本号。将当次目标编译代码的目标编译版本号与管理版本号进行比较,若编译代码版本号与管理版本号一致,则说明自前一次编译完成后,并未有开发人员对该待编译代码进行开发或修改,此时自动编译工具将生成第一提示信息,第一提示信息用于提示测试人员,该待编译代码不存在对应的修改版本代码。

若当次目标编译代码对应的编译版本号与前一次编译完成后生成的该待编译代码的管理版本号不一致,则说明从前一次编译完成后到当前时刻,开发人员对该待编译代码进行了开发或修改,需要从SVN服务器中获取目标编译代码进行编译。

自动编译工具先删除本地数据库中存储的待编译代码A的本地文件,再从SVN服务器中获取目标编译代码,调用PowerBuilder提供的扩展动态库(pborc90.dll),把目标编译代码导入到PowerBuilder的PowerBuilder特有的代码集成管理容器(PBL)中,向PowerBuilder发送编译命令,唤起编译工程执行进行编译,并实时监测PowerBuilder的编译过程,获取编译结果,若编译失败,则生成当监测到编译失败时,将会生成编译失败提示信息,通知相关测试人员进行处理。

当监测到编译成功时,生成编译成功提示信息通知相关测试人员编译完成,并根据编译代码标识从SVN服务器中获取该编译代码便是对应的修改内容数据B.XML。自动编译工具对获取到的B.XML文件进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容,将获取到的修改内容发送至测试人员的终端界面进行展示,同时将得到的执行文件发送至指定发布目录进行保存。

本实施例中的代码编译方法,通过实现自动化编译功能,代替目前使用的人工编译。可大大节省开发人员在编译上面的人力投入,使整个开发测试工作流程更加顺畅。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的代码编译方法的代码编译装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个代码编译装置实施例中的具体限定可以参见上文中对于代码编译方法的限定,在此不再赘述。

在一个实施例中,如图8所示,提供了一种代码编译装置800,包括:接收模块801、获取模块802、判断模块803、更新模块804和编译模块805,其中:

接收模块801,用于接收用户终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识。

获取模块802,用于从管理服务器中获取版本信息数据,版本信息数据包含待编译代码对应的各修改版本代码的版本信息。

判断模块803,用于根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码。

更新模块804,用于若存在,则遍历各冲突修改版本代码,执行冲突确认命令,将编译代码标识对应的最新修改版本代码更新为待编译代码的目标编译代码。

编译模块805,用于从管理服务器中获取目标编译代码进行编译,得到执行文件。

上述代码编译装置,在接收到用户终端发送的编译申请指令时,根据编译申请指令确定待编译代码的编译代码标识,从管理服务器中获取版本信息数据,由于版本信息数据中包含有管理服务器中所有修改版本代码的版本信息,因此可以根据版本数据信息以及编译代码标识,判断待编译代码是否存在对应的冲突修改版本代码,当存在冲突修改版本代码时,无需人工进行操作,自动遍历各冲突修改版本代码,依次执行冲突确认命令,将编译代码标识对应的最新修改版本代码更新为待编译代码的目标编译代码,从管理服务器中获取目标编译代码进行编译得到执行文件。整个编译过程不需要人工干预,大大节省了软件开发时在编译上面的人力投入,提高了开发测试工作流程的顺畅性,有效保障了后续软件开发工作的速度。

在一个实施例中,判断模块还用于:将与编译代码标识一致的代码标识确定为修改代码标识;获取各修改代码标识对应的状态信息;若各状态信息中存在冲突状态信息,则确定待编译代码存在冲突修改版本代码,冲突状态信息对应的修改版本代码为冲突修改版本代码。

在一个实施例中,更新模块还用于:查各修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,目标编译版本号对应的修改版本代码确定为最新修改版本代码;将最新修改版本代码确定为待编译代码对应的目标编译代码。

在一个实施例中,代码编译装置还包括:比较模块,用于获取待编译代码在前一次编译完成后,管理服务器记录的管理版本号;将编译代码版本号与管理版本号进行对比;若编译代码版本号与管理版本号一致,则生成第一提示信息,第一提示信息用于提示待编译代码不存在对应的修改版本代码;将第一提示信息发送至终端界面进行展示。

在一个实施例中,比较模块还用于:若编译版本号与管理版本号不一致,根据编译代码标识从管理服务器中获取编译代码标识对应的修改内容数据;对修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容;将修改内容展示发送至终端界面进行展示。

在一个实施例中,编译模块还用于:删除待编译代码在本地数据库中对应的本地文件,从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,代码编译装置还包括:监测模块,用于对目标编译代码的编译过程进行实时监测;当监测到编译失败时,生成编译失败提示信息;当监测到编译成功时,生成编译成功提示信息,将得到的执行文件发送至指定目录。

上述代码编译装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是集成本申请中自动编译工具的终端或服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储编译代码标识、版本信息数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种代码编译方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

接收用户终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识;

从管理服务器中获取版本信息数据,版本信息数据包含待编译代码对应的各修改版本代码的版本信息;

根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码;

若存在,则遍历各冲突修改版本代码,执行冲突确认命令,将编译代码标识对应的最新修改版本代码确定为待编译代码对应的目标编译代码;

从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

将与编译代码标识一致的代码标识确定为修改代码标识;

获取各修改代码标识对应的状态信息;

若各状态信息中存在冲突状态信息,则确定待编译代码存在冲突修改版本代码,冲突状态信息对应的修改版本代码为冲突修改版本代码。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

查各修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,目标编译版本号对应的修改版本代码确定为最新修改版本代码;

将最新修改版本代码确定为待编译代码对应的目标编译代码。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取待编译代码在前一次编译完成后,管理服务器记录的管理版本号;

将编译代码版本号与管理版本号进行对比;

若编译代码版本号与管理版本号一致,则生成第一提示信息,第一提示信息用于提示待编译代码不存在对应的修改版本代码;

将第一提示信息发送至终端界面进行展示。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若编译版本号与管理版本号不一致,根据编译代码标识从管理服务器中获取编译代码标识对应的修改内容数据;

对修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容;

将修改内容展示发送至终端界面进行展示。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

删除待编译代码在本地数据库中对应的本地文件,从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

对目标编译代码的编译过程进行实时监测;

当监测到编译失败时,生成编译失败提示信息;

当监测到编译成功时,生成编译成功提示信息,将得到的执行文件发送至指定目录。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收用户终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识;

从管理服务器中获取版本信息数据,版本信息数据包含待编译代码对应的各修改版本代码的版本信息;

根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码;

若存在,则遍历各冲突修改版本代码,执行冲突确认命令,将编译代码标识对应的最新修改版本代码确定为待编译代码对应的目标编译代码;

从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将与编译代码标识一致的代码标识确定为修改代码标识;

获取各修改代码标识对应的状态信息;

若各状态信息中存在冲突状态信息,则确定待编译代码存在冲突修改版本代码,冲突状态信息对应的修改版本代码为冲突修改版本代码。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

查各修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,目标编译版本号对应的修改版本代码确定为最新修改版本代码;

将最新修改版本代码确定为待编译代码对应的目标编译代码。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取待编译代码在前一次编译完成后,管理服务器记录的管理版本号;

将编译代码版本号与管理版本号进行对比;

若编译代码版本号与管理版本号一致,则生成第一提示信息,第一提示信息用于提示待编译代码不存在对应的修改版本代码;

将第一提示信息发送至终端界面进行展示。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若编译版本号与管理版本号不一致,根据编译代码标识从管理服务器中获取编译代码标识对应的修改内容数据;

对修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容;

将修改内容展示发送至终端界面进行展示。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

删除待编译代码在本地数据库中对应的本地文件,从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对目标编译代码的编译过程进行实时监测;

当监测到编译失败时,生成编译失败提示信息;

当监测到编译成功时,生成编译成功提示信息,将得到的执行文件发送至指定目录。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

接收用户终端发送的编译申请指令,根据编译申请指令确定待编译代码的编译代码标识;

从管理服务器中获取版本信息数据,版本信息数据包含待编译代码对应的各修改版本代码的版本信息;

根据版本信息数据与编译代码标识,判断待编译代码是否存在冲突修改版本代码;

若存在,则遍历各冲突修改版本代码,执行冲突确认命令,将编译代码标识对应的最新修改版本代码确定为待编译代码对应的目标编译代码;

从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将与编译代码标识一致的代码标识确定为修改代码标识;

获取各修改代码标识对应的状态信息;

若各状态信息中存在冲突状态信息,则确定待编译代码存在冲突修改版本代码,冲突状态信息对应的修改版本代码为冲突修改版本代码。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

查各修改代码标识对应的版本号,将最大的版本号确定为目标编译版本号,目标编译版本号对应的修改版本代码确定为最新修改版本代码;

将最新修改版本代码确定为待编译代码对应的目标编译代码。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取待编译代码在前一次编译完成后,管理服务器记录的管理版本号;

将编译代码版本号与管理版本号进行对比;

若编译代码版本号与管理版本号一致,则生成第一提示信息,第一提示信息用于提示待编译代码不存在对应的修改版本代码;

将第一提示信息发送至终端界面进行展示。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若编译版本号与管理版本号不一致,根据编译代码标识从管理服务器中获取编译代码标识对应的修改内容数据;

对修改内容数据进行数据处理,得到从前一次编译完成到当前时刻,编译代码标识对应的各修改版本代码的修改内容;

将修改内容展示发送至终端界面进行展示。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

删除待编译代码在本地数据库中对应的本地文件,从管理服务器中获取目标编译代码进行编译,得到执行文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对目标编译代码的编译过程进行实时监测;

当监测到编译失败时,生成编译失败提示信息;

当监测到编译成功时,生成编译成功提示信息,将得到的执行文件发送至指定目录。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

本文发布于:2023-04-15 02:09:14,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86990.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图