一种软件的编译方法、装置及系统的制作方法_3

文档序号:9417221阅读:来源:国知局
,该所述第一编译装置和所述第二编译装置可为同一服务器或为不同服务器。
[0045]可以理解是,上述第一编译装置和第二编译装置仅为用于执行第一、第二类代码的编译装置的统称。在实际应用中,为加快编译速度,该第一编译装置和第二编译装置还可为多个编译器的集成。例如,第一编译装置为多个服务器的集成,第二编译装置也为多个服务器的集成。
[0046]上述方案可带来的有益效果如下:
[0047]I)整体性:把第一、第二类代码的编译操作合二为一,不需要分别手动进行配置和提交编译请求,同时避免了手动操作上的误差,且提高了编译效率;
[0048]2)操作灵活简便:支持一键启动第一、第二类代码的编译,支持定时启动第二类代码的编译。简单的参数配置即可控制第二类代码的编译任务的执行;
[0049]3)通用性:支持多个版本的第二类代码编译,所有版本均共用同一套自动化脚本,第一编译装置可根据该自动化脚本启动所有版本的第二类代码的编译,维护简便;
[0050]4)拓展性:第二类代码编译以独立模块实现自动化脚本,可嵌入到第一类代码构建的集成脚本中的任意地方,使得可在第一类代码的构建过程的任意时刻启动第二编译,代码结构清晰,低耦合度的代码设计使得脚本的拓展性更强;
[0051]5)节省成本:在第一类代码编译的同时自动触发第二类代码编译的同步进行,不需要手动操作,节省手动配置过程以及有效利用版本编译时间,从而提高了版本集成效率,省时省人力。
[0052]请参阅图3,图3是本申请软件的编译装置一实施方式的结构示意图。本实施方式中,所述编译装置300即为上述第一编译装置,包括接收模块310、编译模块320、触发模块330及上传模块340。
[0053]接收模块310用于接收对待编译软件的第一类代码的编译指令。
[0054]其中,该待编译软件包括该第一类代码和第二类代码,该第一类代码为在该待编译软件的不同版本中不作更新的代码,该第二类代码为可根据该待编译软件的不同版本进行更新的代码。该第一类代码例如为该待编译软件的计算机程序部分,该第二类代码例如为该待编译软件的资源部分,如各国语言翻译字符、铃声、图片等,针对不同的第二类代码,可编译生成不同的软件版本。
[0055]所述对待编译软件的第一类代码的编译指令可由用户输入。
[0056]编译模块320用于对所述第一类代码进行第一编译。
[0057]本实施方式中,待编译软件的不同代码部分可分别分布在不同开发人员的计算机中。编译模块320作为用于执行第一类代码编译的工具,在接收到上述对该第一类代码的编译指令时,启动第一 Jenkins任务以进行对第一类代码的构建,如采用Jenkins集成开发工具对所述待编译软件的代码进行集成,并对所述第一类代码进行第一编译。可以理解的是,本申请中第一编译装置不限定采用Jenkins集成开发工具进行代码集成,在其他实施方式中,第一编译装置还可采用其他的集成开发工具,在此不作限定。
[0058]可选地,编译模块320执行所述采用Jenkins集成开发工具对所述待编译软件的代码进行集成的步骤可具体为:采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑;集成所述待编译软件的所述待编译版本的里程碑的代码。
[0059]触发模块330用于在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
[0060]触发模块330作为对第二类代码的触发装置,在编译模块320进行构建过程中,当满足预定条件时启动第二 Jenkins任务,产生对该第二类代码进行编译的指令,以触发第二编译装置对第二类代码的构建。例如,触发模块330可通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。第二编译装置响应该编译指令而获得配置参数并集成该待编译软件的代码,并根据所述配置参数对所述第二类代码进行编译,并将该第二类代码的镜像文件上传至连接的服务器。
[0061]其中,该预定条件可根据具体应用场景进行设定。可选地,为保证待编译软件的版本匹配,该预定条件为在接收到编译指令后至完成第一编译的过程中触发该第二编译。进一步地,所述预定条件可为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间。该设定时间可设置为任意值,如I个小时、O (即表示在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后立刻触发第二编译)等。
[0062]需要说明的是,本申请对第一、第二编译的先后顺序不作任何限制,例如第一编译和第二编译可以同时启动执行、先启动第一编译后启动第二编译、或先启动第二编译后启动第一编译。
[0063]上传模块340用于将所述第一编译得到的所述第一类代码的镜像文件上传至服务器。
[0064]本实施方式中,上传模块340与第二编译装置均与服务器建立连接。上传模块340在进行完成上述第一编译后得到第一类代码的镜像文件,将该第一类代码的镜像文件上传至该服务器。而第二编译装置在进行完成上述第二编译后得到第二类代码的镜像文件,并将该第二类代码的镜像文件上传至该服务器。该服务器接收到第一、第二类代码的镜像文件后,将该镜像文件作为待编译软件的一个新版本,以提供给用户下载使用。
[0065]可选地,本申请可支持多个版本的同时编译。对应地,上述待编译的软件可包括多组第二类代码。所述触发模块330具体用于在:对在满足预定条件时产生对所述多组第二类代码的编译指令,以触发第二编译装置对所述多组第二类代码分别进行第二编译。
[0066]可选地,上述编译模块320还可用于实时输出编译log,且在编译通过或失败时,发送邮件通知,以便相关人员及时了解编译进度。
[0067]上述实施方式中,该第一编译装置300可为服务器。所述第二编译装置还可作为第一编译装置300的模块设置在所述第一编译装置300中。
[0068]可以理解是,上述第一编译装置300和第二编译装置仅为用于执行第一、第二类代码的编译装置的统称。在实际应用中,为加快编译速度,该第一编译装置和第二编译装置还可为多个编译器的集成。例如,第一编译装置为多个服务器的集成,第二编译装置也为多个服务器的集成。上述装置实施例中的模块分别用于执行上述方法实施例中的对应步骤,故上述模块的具体说明可参与对应步骤的相关说明,在此不作赘述。
[0069]请参阅图4,图4是本申请软件的编译系统一实施方式的结构示意图。本实施方式中,所述编译系统包括相互连接的第一编译装置410和第二编译装置420。
[0070]其中,第一编译装置410即为上面实施方式中所述的第一编译装置。第二编译装置420即为上述实施方式中所述的第二编译装置,用于对待编译软件的第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。具体说明请参阅上述实施方式中的描述。
[0071]上述方案中,第一编译装置在接收到对待编译软件的第一类代码的编译指令时,执行对该第一
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1