《编译发布方法及发布服务器.pdf》由会员分享,可在线阅读,更多相关《编译发布方法及发布服务器.pdf(10页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104090763A43申请公布日20141008CN104090763A21申请号201410330653622申请日20140711G06F9/4420060171申请人携程计算机技术(上海)有限公司地址200335上海市长宁区福泉路99号携程网络技术大楼72发明人叶亚明74专利代理机构上海弼兴律师事务所31283代理人薛琦王婧荷54发明名称编译发布方法及发布服务器57摘要本发明提供一种编译发布方法及发布服务器,编译发布方法包括发布服务器接收本地发送来的待编译子模块,并对待编译子模块进行编译,若编译成功则将待编译子模块汇总至发布服务器存储的待发布应用中,若编译失败则发出提。
2、示;发布服务器每隔一第一时间段对待发布应用进行编译,并在编译失败时发出提示;发布服务器判断是否需要发布待发布应用,并在需要发布时对待发布应用进行编译,若编译成功则发布待发布应用,若编译失败则发出提示。本发明能够有效地缩短应用开发时间、实时性强。51INTCL权利要求书2页说明书6页附图1页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图1页10申请公布号CN104090763ACN104090763A1/2页21一种编译发布方法,其特征在于,其包括以下步骤一发布服务器接收本地发送来的待编译子模块,并对该待编译子模块进行编译,若编译成功则将该待编译子模块汇总至该发布服。
3、务器存储的待发布应用中,若编译失败则发出提示;该发布服务器每隔一第一时间段对该待发布应用进行编译,并在编译失败时发出提示;该发布服务器判断是否需要发布该待发布应用,并在需要发布时对该待发布应用进行编译,若编译成功则发布该待发布应用,若编译失败则发出提示。2如权利要求1所述的编译发布方法,其特征在于,该发布服务器在该待编译子模块编译成功后,将该待编译子模块的块名与该待发布应用中的代码单元的单元名进行匹配,若匹配成功则利用该待编译子模块替换相匹配的代码单元,若匹配失败则将该待编译子模块添加至该待发布应用中。3如权利要求1所述的编译发布方法,其特征在于,该发布服务器在接收该待编译子模块的同时记录接收。
4、该待编译子模块的时间。4如权利要求1所述的编译发布方法,其特征在于,该发布服务器在需要发布时,判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块,若是则对该待发布应用进行编译,若否则发布该待发布应用。5如权利要求14中任意一项所述的编译发布方法,其特征在于,该发布服务器在编译失败时分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元名。6如权利要求14中任意一项所述的编译发布方法,其特征在于,该发布服务器统计一第二时间段内编译失败的次数、位置以及该位置处代码所在的代码单元的责任人,并生成报表。7一种发布服务器,其特征在于,其包括一增量编译模块、一汇总模块、一提示模。
5、块、一全量编译模块、一第一判断模块、一即时编译模块和一发布模块;该增量编译模块用于接收本地发送来的待编译子模块,并对该待编译子模块进行编译,在编译成功时调用该汇总模块,在编译失败时调用该提示模块;该汇总模块用于将该待编译子模块汇总至该发布服务器存储的待发布应用中;该提示模块用于发出提示;该全量编译模块用于每隔一第一时间段对该待发布应用进行编译,并在编译失败时调用该提示模块;该第一判断模块用于判断是否需要发布该待发布应用,并在需要发布时调用该即时编译模块;该即时编译模块用于对该待发布应用进行编译,在编译成功时调用该发布模块发布该待发布应用,在编译失败时调用该提示模块。8如权利要求7所述的发布服务。
6、器,其特征在于,该汇总模块包括一匹配模块、一替换模块和一添加模块;该匹配模块用于在该待编译子模块编译成功后,将该待编译子模块的块名与该待发布应用中的代码单元的单元名进行匹配,在匹配成功时调用该替换模块,在匹配失败时调用该添加模块;权利要求书CN104090763A2/2页3该替换模块用于利用该待编译子模块替换相匹配的代码单元;该添加模块用于将该待编译子模块添加至该待发布应用中。9如权利要求7所述的发布服务器,其特征在于,该发布服务器还包括一记录模块,该记录模块用于在接收该待编译子模块的同时记录接收该待编译子模块的时间。10如权利要求7所述的发布服务器,其特征在于,该发布服务器还包括一第二判断模。
7、块,该第二判断模块用于在需要发布时,判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块,若是则调用该即时编译模块,若否则调用该发布模块。11如权利要求710中任意一项所述的发布服务器,其特征在于,该发布服务器还包括一分析模块,该分析模块用于在编译失败时分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元名。12如权利要求710中任意一项所述的发布服务器,其特征在于,该发布服务器还包括一统计模块,该统计模块用于统计一第二时间段内编译失败的次数、位置以及该位置处代码所在的代码单元的责任人,并生成报表。权利要求书CN104090763A1/6页4编译发布方法及发布服务器。
8、技术领域0001本发明涉及一种编译发布方法,特别涉及一种利用发布服务器实现的编译发布方法以及发布服务器。背景技术0002随着信息技术和互联网的发展,应用开发对时效性的要求越来越高,如今为了节约开发时间,应用的开发越来越倾向于由多个开发人员合作进行。每一个开发人员完成自己负责的部分,提交到发布服务器上,发布服务器在发布前进行当前版本整体编译并进行发布。0003这样的开发环境存在一个不可避免的问题尽管每一个开发人员可以保证自己开发的子模块代码在自己的机器上能够正常通过编译,但是无法保证自己开发的代码发到发布服务器之后发布服务器能够正常通过编译,这就涉及到发布服务器与本地计算机之间的兼容性问题。而且。
9、,现有技术中,一般是在需要发布待发布应用之前才进行代码编译,无法保证发布服务器发布之前的编译能够顺利通过,因为在发布之前发布服务器会接收到许多更改的代码文件并汇总这些代码文件,汇总后发布服务器中的该应用各子模块代码间有可能会相互影响,甚至可能与其它应用产生冲突,导致编译错误,进而导致待发布应用不能及时发布出去,后续需要对待发布应用进行错误分析并通知相应的负责人更改代码,这将进一步拖延发布时间,无法体现应用开发的实时性。0004一个应用开发时间的长短往往决定着一个业务的成功与失败,缩短应用的开发时间有着非常重要的意义。目前针对发布服务器,提高应用发布的实时性的技术比较欠缺。发明内容0005本发明。
10、要解决的技术问题是为了克服现有技术中的编译发布方法仅在需要发布时才进行编译,由此经常会由于编译错误而导致无法及时发布,实时性差的缺陷,提供一种能够有效地缩短应用开发时间、实时性强的编译发布方法及发布服务器。0006本发明是通过下述技术方案来解决上述技术问题的0007本发明提供一种编译发布方法,其特点在于,其包括以下步骤0008一发布服务器接收本地发送来的待编译子模块,并对该待编译子模块进行编译,若编译成功则将该待编译子模块汇总至该发布服务器存储的待发布应用中,若编译失败则发出提示;0009该发布服务器每隔一第一时间段对该待发布应用进行编译,并在编译失败时发出提示;0010该发布服务器判断是否需。
11、要发布该待发布应用,并在需要发布时对该待发布应用进行编译,若编译成功则发布该待发布应用,若编译失败则发出提示。0011在本方案中,该待编译子模块指的是开发人员提交的新增、更改或空的子模块代码用于删除待发布应用中的部分代码单元。将待编译子模块汇总至待发布服务器中指说明书CN104090763A2/6页5的是将待编译子模块添加至待发布应用中,或利用待编译子模块更换与待编译子模块的块名相匹配的代码单元,或将待发布应用中部分代码单元删除。0012在现有技术中经常会出现这一情况开发人员开发的代码在自己的机器上能够正常通过编译,但是开发人员将开发的代码提交至发布服务器之后,代码在发布服务器上没有正常通过编。
12、译。为了避免这种情况的发生,本发明对开发人员提交的每一个待编译子模块均进行编译,待编译子模块编译成功则将其汇总至待发布应用中,待编译子模块编译不成功则发布服务器就发出提示,例如通过邮件、短信等方式将编译失败信息通知至相关负责人。0013在现有技术中还经常会出现这样的情况设定待发布应用包括四个代码单元,这四个代码单元的单元名分别为A、B、C和D。后续某一开发人员又新提交一待编译子模块,新提交的待编译子模块的块名为A,发布服务器对新提交的待编译子模块进行编译且编译成功,则发布服务器利用新提交的待编译子模块A替换待发布应用中的单元名为A的代码单元。这时,待发布应用中的代码单元A、B、C和D单独编译均。
13、是编译成功的,但对待发布应用这一整体进行编译却编译失败,即待发布应用中的每一代码单元单独编译均编译成功,却无法保证对这些代码单元进行整体编译能够编译成功。所以,本发明设计了全量编译这一步骤,发布服务器每隔一固定时间段就对待发布应用进行编译,编译成功则说明将这些代码单元作为一个整体进行编译也能够编译成功,编译失败则发出提示,例如通过邮件、短信等方式将编译失败信息通知给相关负责人。0014发布服务器在到达整体编译的时刻时对待发布应用进行整体编译,其后发布服务器收到开发人员发送来的一个待编译子模块,发布服务器对发送来的待编译子模块进行编译且编译成功,并将待编译子模块汇总至待发布应用中,然后发布服务器。
14、判断出需要发布待发布应用,但由于还未到发布服务器下一次编译待发布应用的时间,所以发布服务器并未对更新后的待发布应用进行整体编译就将其发布出去,由此导致发布服务器发布出去的待发布应用是未经整体编译的待发布应用,有可能发布出去的待发布应用经整体编译会编译失败。而本发明在发布服务器判断出需要发布待发布应用时,对待发布应用进行整体编译,这种设计方式能够有效地避免发布出去的待发布应用是未通过编译的待发布应用,保证发布出去的待发布应用始终是能够编译成功的待发布应用。0015较佳地,该发布服务器在该待编译子模块编译成功后,将该待编译子模块的块名与该待发布应用中的代码单元的单元名进行匹配,若匹配成功则利用该待。
15、编译子模块替换相匹配的代码单元,若匹配失败则将该待编译子模块添加至该待发布应用中。这里的替换应理解为若待编译子模块包含的代码是对相匹配的代码单元包含的代码的进一步更改,则发布服务器直接将相匹配的代码单元更换为待编译子模块,若待编译子模块中没有包含任何代码,则发布服务器将相匹配的代码单元更换为空的待编译子模块,即相当于将相匹配的代码单元删除。0016较佳地,该发布服务器在接收该待编译子模块的同时记录接收该待编译子模块的时间。0017较佳地,该发布服务器在需要发布时,判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块,若是则对该待发布应用进行编译,若否则发布该待发布应用。本方案能。
16、够有效地保证发布出去的待发布应用是编译成功的待发布应用,且本说明书CN104090763A3/6页6方案能够尽量地缩短发布待发布应用所需的时间。0018在本方案中,该发布服务器判断是否需要发布该待发布应用,并在需要发布时判断是否需要对该待发布应用进行编译,判断是否需要对该待发布应用进行编译的方式是通过判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块的技术手段来实现的,若需要编译则立即编译,编译成功则发布该待发布应用,编译失败则发出提示,若不需要编译则立即发布该待发布应用。0019较佳地,该发布服务器在编译失败时分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元。
17、名。0020本方案中,发布服务器一接收到开发人员提交的待编译子模块就对待编译子模块进行编译,一旦出现编译错误,发布服务器就能够自动准确地定位出编译失败的位置、分析出编译失败的原因等。0021发布服务器每隔一第一时间段就对待发布应用进行整体编译,一旦出现编译错误,发布服务器就能够自动准确地定位出编译失败的位置、分析出编译失败的原因等。0022发布服务器在判断出需要发布待发布应用时对待发布应用进行整体编译,一旦出现编译错误,发布服务器就能够自动准确地定位出编译失败的位置、分析出编译失败的原因等。0023较佳地,该发布服务器统计一第二时间段内编译失败的次数、位置以及该位置处代码所在的代码单元的责任人。
18、,并生成报表。0024本发明还提供一种发布服务器,其特点在于,其包括一增量编译模块、一汇总模块、一提示模块、一全量编译模块、一第一判断模块、一即时编译模块和一发布模块;0025该增量编译模块用于接收本地发送来的待编译子模块,并对该待编译子模块进行编译,在编译成功时调用该汇总模块,在编译失败时调用该提示模块;0026该汇总模块用于将该待编译子模块汇总至该发布服务器存储的待发布应用中;0027该提示模块用于发出提示;0028该全量编译模块用于每隔一第一时间段对该待发布应用进行编译,并在编译失败时调用该提示模块;0029该第一判断模块用于判断是否需要发布该待发布应用,并在需要发布时调用该即时编译模块。
19、;0030该即时编译模块用于对该待发布应用进行编译,在编译成功时调用该发布模块发布该待发布应用,在编译失败时调用该提示模块。0031较佳地,该汇总模块包括一匹配模块、一替换模块和一添加模块;0032该匹配模块用于在该待编译子模块编译成功后,将该待编译子模块的块名与该待发布应用中的代码单元的单元名进行匹配,在匹配成功时调用该替换模块,在匹配失败时调用该添加模块;0033该替换模块用于利用该待编译子模块替换相匹配的代码单元;0034该添加模块用于将该待编译子模块添加至该待发布应用中。0035较佳地,该发布服务器还包括一记录模块,该记录模块用于在接收该待编译子模块的同时记录接收该待编译子模块的时间。。
20、0036较佳地,该发布服务器还包括一第二判断模块,该第二判断模块用于在需要发布说明书CN104090763A4/6页7时,判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块,若是则调用该即时编译模块,若否则调用该发布模块。0037较佳地,该发布服务器还包括一分析模块,该分析模块用于在编译失败时分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元名。0038较佳地,该发布服务器还包括一统计模块,该统计模块用于统计一第二时间段内编译失败的次数、位置以及该位置处代码所在的代码单元的责任人,并生成报表。0039在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发。
21、明各较佳实例。0040本发明的积极进步效果在于0041本发明的编译发布方法及发布服务器,能够有效地缩短发布待发布应用所需的时间,进而缩短应用开发时间,并具有实时性强的优点。附图说明0042图1为本发明的较佳实施例的发布服务器的结构框图。具体实施方式0043下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。0044本实施例提供一种编译发布方法,其包括以下步骤0045一发布服务器接收本地发送来的待编译子模块,同时记录接收该待编译子模块的时间,并对该待编译子模块进行编译,若编译成功则将该待编译子模块的块名与该待发布应用中的代码单元的单元名进行匹配,若匹配成功则利用该。
22、待编译子模块替换相匹配的代码单元,若匹配失败则将该待编译子模块添加至该待发布应用中;若编译失败则该发布服务器发出提示,且分析编译失败的原因、位置以及该待编译子模块的块名。0046本步骤中,发布服务器接收到开发人员提交的待编译子模块后对待编译子模块进行编译,一旦出现编译错误,发布服务器就能够自动准确地定位出编译失败的位置、分析出编译失败的原因等。0047该发布服务器每隔一第一时间段对该待发布应用进行编译,并在编译失败时该发布服务器发出提示,且分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元名。0048本步骤中,发布服务器每隔一固定时间段就对待发布应用进行整体编译,一旦出现编译错误。
23、,发布服务器就能够自动准确地定位出编译失败的位置、分析出编译失败的原因等。0049该发布服务器判断是否需要发布该待发布应用,并在需要发布时判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块,若是则对该待发布应用进行编译,若编译成功则发布该待发布应用,若编译失败则发出提示并分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元名;若否则发布该待发布应用。本步骤能够有效地保证发布出去的待发布应用是编译成功的待发布应用。0050另外,该发布服务器还统计一第二时间段例如24小时内编译失败的次数、位说明书CN104090763A5/6页8置以及该位置处代码所在的代码单元的责任。
24、人,并生成报表。0051参考图1所示,本实施例还提供一种发布服务器,其包括一增量编译模块1、一记录模块2、一汇总模块3、一提示模块4、一分析模块5、一全量编译模块6、一第一判断模块7、一第二判断模块8、一即时编译模块9、一发布模块10和一统计模块11。其中,该汇总模块3包括一匹配模块31、一替换模块32和一添加模块33。0052上面介绍了该发布服务器包括的功能模块,下面具体介绍各功能模块所具备的功能0053该增量编译模块1用于接收本地发送来的待编译子模块,并对该待编译子模块进行编译,在编译成功时调用该汇总模块3,在编译失败时调用该提示模块4和该分析模块5;0054该记录模块2用于在接收该待编译。
25、子模块的同时记录接收该待编译子模块的时间;0055该汇总模块3用于将该待编译子模块汇总至该发布服务器存储的待发布应用中,具体地,该匹配模块31用于在该待编译子模块编译成功后,将该待编译子模块的块名与该待发布应用中的代码单元的单元名进行匹配,在匹配成功时调用该替换模块32,在匹配失败时调用该添加模块33,该替换模块32用于利用该待编译子模块替换相匹配的代码单元,该添加模块33用于将该待编译子模块添加至该待发布应用中;0056该提示模块4用于发出提示;0057该分析模块5用于在编译失败时分析编译失败的原因、位置以及该位置处代码所在的代码单元对应的单元名;0058该全量编译模块6用于每隔一第一时间段。
26、对该待发布应用进行编译,并在编译失败时调用该提示模块4和该分析模块5;0059该第一判断模块7用于判断是否需要发布该待发布应用,并在需要发布时调用该第二判断模块8;0060该第二判断模块8用于判断当前时间至最近一次编译该待发布应用的时间内是否接收到待编译子模块,若是则调用该即时编译模块9,若否则调用该发布模块10发布该待发布应用;0061该即时编译模块9用于对该待发布应用进行编译,在编译成功时调用该发布模块10,在编译失败时调用该提示模块4和该分析模块5;0062该统计模块11用于统计一第二时间段内编译失败的次数、位置以及该位置处代码所在的代码单元的责任人,并生成报表。0063下面举一具体的例。
27、子来具体说明本发明,以使本领域的技术人员能够更好地理解本发明的技术方案0064设定待发布应用包括3个代码单元,这3个代码单元的单元名分别为A、B和C。后续某一开发人员发送一个待编译子模块,该待编译子模块的块名为D,该待编译子模块为新增的子模块代码。0065该发布服务器接收该开发人员发送来的该待编译子模块,并对该待编译子模块进行编译并且编译成功,则该发布服务器将该待编译子模块的块名D与该待发布应用中的代码单元的单元名即A、B和C进行匹配,匹配失败则将该待编译子模块添加至该待发布应说明书CN104090763A6/6页9用中,这时待发布应用中的代码单元有4个,分别为代码单元A、B、C和D。在这之后。
28、,恰好到对该待发布应用进行整体编译的时间,则该发布服务器对该待发布应用进行整体编译且编译成功。0066后续某一开发人员又新提交一待编译子模块,新提交的待编译子模块的块名为C,该发布服务器接收该开发人员新提交的待编译子模块,并对该待编译子模块进行编译并且编译成功,则该发布服务器将该待编译子模块的块名C与该待发布应用中的代码单元的单元名即A、B、C和D进行匹配,匹配成功则该发布服务器利用该待编译子模块C替换该待发布应用中的代码单元C。0067在这之后,到达对该待发布应用进行整体编译的时间,则该发布服务器对该待发布应用进行整体编译且编译失败,并自动分析编译失败的原因、位置以及该位置处代码所在的代码单。
29、元对应的单元名,然后通过邮件的方式将上述编译失败信息通知至相关负责人,相关负责人对该待发布应用进行人工修复。在下一次整体编译时间到达时,该发布服务器对修复后的待发布应用进行整体编译且编译成功。0068后续某一开发人员又新提交一待编译子模块,新提交的待编译子模块的块名为A,该发布服务器接收该开发人员新提交的待编译子模块,并对该待编译子模块进行编译并且编译成功,则该发布服务器将该待编译子模块的块名A与该待发布应用中的代码单元的单元名即A、B、C和D进行匹配,匹配成功则该发布服务器利用该待编译子模块A替换该待发布应用中的代码单元A。0069在这之后,到达对该待发布应用进行整体编译的时间,则该发布服务。
30、器对该待发布应用进行整体编译且编译成功。0070此后,该发布服务器在某一时刻判断出需要发布该待发布应用,并判断此时此刻至最近一次编译该待发布应用的时间内是否接收到待编译子模块,判断出未接收到待编译子模块,则该发布服务器发布该待发布应用,发布出去的待发布应用是编译成功的待发布应用。0071本发明能够有效地缩短发布待发布应用所需的时间,进而缩短应用开发时间,并具有实时性强的优点。0072虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。说明书CN104090763A1/1页10图1说明书附图CN104090763A10。