程序版本构建和检查方法及系统与流程

文档序号:17089370发布日期:2019-03-13 23:15阅读:120来源:国知局
程序版本构建和检查方法及系统与流程

本发明涉及程序开发技术领域,尤其涉及一种程序版本构建和检查方法及系统。



背景技术:

在程序开发过程中,版本的构建一直是比较繁琐,且容易出错的。在构建版本时,需要对待构建的源程序及所有被调用到的源程序进行正确的构建,才能最终构建出正确的可执行代码。在aix(advancedinteractivexecutive)等小型机环境下进行程序版本构建时,目前还没有可用的版本自动构建工具,且对任一给定的已完成构建的可执行代码,也没办法推断出其是否已经构建成功,现有技术主要根据构建后的可执行代码大小、构建时间等信息辅助工作人员进行判断,效率比较低,且可靠性较差。

因此,提供一种程序版本构建和检查方法及系统是十分必要的。



技术实现要素:

本发明实施例提供一种程序版本构建和检查方法,用以实现程序版本的自动构建和检查,该方法包括:

根据版本标志,自版本库中提取待处理程序的源程序;

自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树;

遍历依赖关系树上的各个节点,计算各个节点的哈希值;

将待处理程序的源程序编译成可执行代码;

将依赖关系树顶层节点的哈希值写入编译的可执行代码;

利用依赖关系树顶层节点的哈希值对版本构建进行检查。

可选的,在将待处理程序的源程序编译成可执行代码后,将编译好的可执行代码存入版本库中;

对版本构建结果进行检查,重新自版本库中提取待处理程序的源程序,并计算重新提取的源程序对应的依赖关系树顶层节点的哈希值,若该依赖关系树顶层节点的哈希值与版本库中任一给定的可执行代码对应的哈希值一致,则该可执行代码通过了版本构建检查。

可选的,所述方法还包括:

根据检查结果创建检查清单,利用检查清单展示版本构建检查结果。

可选的,遍历依赖关系树上的各个节点,计算各个节点的哈希值,包括:

判断待处理的节点是否为依赖关系树最底层节点;

若为最底层节点,则利用该节点对应程序的源程序进行哈希运算,计算出最底层节点的哈希值;

若为非最底层的节点,则将该节点对应程序的源程序与下一层所有节点的哈希值进行组合,再进行哈希运算,计算出该节点的哈希值。

可选的,将待处理程序的源程序编译成可执行代码,包括:

对程序源程序的编码格式进行判断;

若为gbk格式,则执行gbk格式的构建文件进行构建;

若为utf-8格式,则执行utf-8格式的构建文件进行构建。

本发明实施例还提供了一种程序版本构建和检查系统,用以实现程序版本的自动构建和检查,该系统包括:

提取模块,用于根据版本标志,自版本库中提取待处理程序的源程序;

分析模块,用于自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树;

节点计算模块,用于遍历依赖关系树上的各个节点,计算各个节点的哈希值;

可执行代码构建模块,用于将待处理程序的源程序编译成可执行代码;

写入模块,用于将依赖关系树顶层节点的哈希值写入编译的可执行代码;

检查模块,用于利用依赖关系树顶层节点的哈希值对版本构建进行检查。

可选的,所述检查模块进一步用于:

将编译好的可执行代码存入版本库中;

重新自版本库中提取待处理程序的源程序,并计算重新提取的源程序对应的依赖关系树顶层节点的哈希值,若该依赖关系树顶层节点的哈希值与版本库中任一给定的可执行代码对应的哈希值一致,则该可执行代码通过了版本构建检查。

可选的,该系统还包括:

展示模块,用于根据检查结果创建检查清单,利用检查清单展示版本构建检查结果。

可选的,所述节点计算模块进一步用于:

判断待处理的节点是否为依赖关系树最底层节点;

若为最底层节点,则利用该节点对应程序的源程序进行哈希运算,计算出最底层节点的哈希值;

若为非最底层的节点,则将该节点对应程序的源程序与下一层所有节点的哈希值进行组合,再进行哈希运算,计算出该节点的哈希值。

可选的,所述可执行代码构建模块进一步用于:

对程序源程序的编码格式进行判断;

若为gbk格式,则执行gbk格式的构建文件进行构建;

若为utf-8格式,则执行utf-8格式的构建文件进行构建。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明实施例中,通过自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树;遍历依赖关系树上的各个节点,计算各个节点的哈希值;将待处理程序的源程序编译成可执行代码;并将依赖关系树顶层节点的哈希值附着写入编译的可执行代码,同时利用依赖关系树顶层节点的哈希值对版本构建进行检查,实现了对程序版本的自动构建和检查。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中程序版本构建和检查方法的流程示意图;

图2为本发明实施例中程序版本构建和检查系统的示意图;

图3为本发明实施例中程序版本构建和检查系统的一具体示例图;

图4为本发明实施例中程序版本构建和检查方法的一具体示例图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

下面对本发明涉及到的名词进行解释:

“哈希值”:通过哈希运算把任意长度的数据转换成的固定长度的数据。

“哈希运算”:通过哈希函数计算得出哈希值的过程。

本发明实施例提供了一种程序版本构建和检查方法,如附图1所示,该方法包括:

步骤101、根据版本标志,自版本库中提取待处理程序的源程序。

步骤102、自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树。

步骤103、遍历依赖关系树上的各个节点,计算各个节点的哈希值。

步骤104、将待处理程序的源程序编译成可执行代码。

步骤105、将依赖关系树顶层节点的哈希值写入编译的可执行代码。

步骤106、利用依赖关系树顶层节点的哈希值对版本构建进行检查。

由附图1所示流程可以得知,在本发明实施例中,通过自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树;遍历依赖关系树上的各个节点,计算各个节点的哈希值;将待处理程序的源程序编译成可执行代码;并将依赖关系树顶层节点的哈希值附着写入编译的可执行代码,同时利用依赖关系树顶层节点的哈希值对版本构建进行检查,实现了对程序版本的自动构建和检查。

其中,遍历依赖关系树上的各个节点指的是自下而上访问各个节点。

为了在编译好可执行代码后顺利检查其正确性,利用依赖关系树顶层节点的哈希值对程序版本构建进行检查,包括:

将编译好的可执行代码存入版本库中;

重新自版本库中提取待处理程序的源程序,并计算重新提取的源程序对应的依赖关系树顶层节点的哈希值,若该依赖关系树顶层节点的哈希值与版本库中任一给定的可执行代码对应的哈希值一致,则该可执行代码通过了版本构建检查。

为了向用户清楚地展示版本构建的检查结果,所述程序版本构建和检查方法还包括:

根据检查结果创建检查清单,利用检查清单展示版本构建检查结果。

在本发明实施例中,遍历依赖关系树上的各个节点,计算各个节点的哈希值,包括:

判断待处理的节点是否为依赖关系树最底层节点;

若为最底层节点,则利用该节点对应程序的源程序进行哈希运算,计算出最底层节点的哈希值;

若为非最底层的节点,则将该节点对应程序的源程序与下一层所有节点的哈希值进行组合,再进行哈希运算,计算出该节点的哈希值。

具体地,计算依赖关系树上的各个节点的哈希值是自下而上逐步计算的,当待计算的节点非最底层节点时,则始终将其对应程序的源程序与下一层所有节点的哈希值进行组合,再进行哈希运算,计算出该节点的哈希值,如此循环,直至计算出依赖关系树顶层节点的哈希值。

为了针对不同的格式对程序版本进行顺利构建,将待处理程序的源程序编译成可执行代码,包括:

对程序源程序的编码格式进行判断;

若为gbk格式,则执行gbk格式的构建文件进行构建;

若为utf-8格式,则执行utf-8格式的构建文件进行构建。

其中,gbk全称《汉字内码扩展规范》(gbk即“国标”、“扩展”汉语拼音的第一个字母,英文名称:chineseinternalcodespecification)。utf-8(unicodetransformationformat)是一种针对unicode的可变长度字符编码,又称万国码。

此外,本发明实施例的具体事例可参见附图4。

基于同一发明构思,本发明实施例中还提供了一种程序版本构建和检查系统,如下面的实施例所述。由于程序版本构建和检查系统解决问题的原理与程序版本构建和检查方法相似,因此,程序版本构建和检查系统的实施可以参见程序版本构建和检查方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本发明实施例提供了一种程序版本构建和检查系统,如附图2所示,该系统包括:

提取模块201,用于根据版本标志,自版本库中提取待处理程序的源程序;

分析模块202,用于自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树;

节点计算模块203,用于遍历依赖关系树上的各个节点,计算各个节点的哈希值;

可执行代码构建模块204,用于将待处理程序的源程序编译成可执行代码;

写入模块205,用于将依赖关系树顶层节点的哈希值写入编译的可执行代码。

检查模块206,用于利用依赖关系树顶层节点的哈希值对版本构建进行检查。

在本发明实施例中,检查模块206进一步用于:

将编译好的可执行代码存入版本库中;

重新自版本库中提取待处理程序的源程序,并计算重新提取的源程序对应的依赖关系树顶层节点的哈希值,若该依赖关系树顶层节点的哈希值与版本库中任一给定的可执行代码对应的哈希值一致,则该可执行代码通过了版本构建检查。

如附图3所示,该系统还包括:

展示模块207,用于根据检查结果创建检查清单,利用检查清单展示版本构建检查结果。

一个实施例中,所述节点计算模块203进一步用于:

判断待处理的节点是否为依赖关系树最底层节点;

若为最底层节点,则利用该节点对应程序的源程序进行哈希运算,计算出最底层节点的哈希值;

若为非最底层的节点,则将该节点对应程序的源程序与下一层所有节点的哈希值进行组合,再进行哈希运算,计算出该节点的哈希值。

一个实施例中,所述可执行代码构建模块204进一步用于:

对程序源程序的编码格式进行判断;

若为gbk格式,则执行gbk格式的构建文件进行构建;

若为utf-8格式,则执行utf-8格式的构建文件进行构建。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明实施例中,自配置文件中读取可执行代码清单,分析可执行代码清单中的每个可执行代码在待处理程序的源程序中的调用依赖关系,形成依赖关系树;遍历依赖关系树上的各个节点,计算各个节点的哈希值;将待处理程序的源程序编译成可执行代码;并将依赖关系树顶层节点的哈希值附着写入编译的可执行代码,实现了对程序版本的自动构建。

实施例中,通过对任一给定的可执行代码进行检查,可以保证版本构建的正确性,提高版本构建及检查效率。通过检查后形成检查清单,可以便于用户对检查结果进行查看。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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