CN105138387A - 一种软件的编译方法、装置及系统 - Google Patents
一种软件的编译方法、装置及系统 Download PDFInfo
- Publication number
- CN105138387A CN105138387A CN201510552984.9A CN201510552984A CN105138387A CN 105138387 A CN105138387 A CN 105138387A CN 201510552984 A CN201510552984 A CN 201510552984A CN 105138387 A CN105138387 A CN 105138387A
- Authority
- CN
- China
- Prior art keywords
- code
- software
- compiled
- equations
- compiling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种软件的编译方法、装置及系统,其中,所述方法包括:第一编译装置接收对待编译软件的第一类代码的编译指令;对所述第一类代码进行第一编译,并在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译;以及将所述第一编译得到的所述第一类代码的镜像文件上传至服务器,以及由所述第二编译装置将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。通过上述方式,能够实现编译的智能化,提高编译效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种软件的编译方法、装置及系统。
背景技术
目前,为了满足不同用户群体对软件应用的不同需求,例如对软件界面背景图片的不同要求、对软件语言的不同要求等,大部分软件已逐渐趋向可实现定制化。定制化软件可拆分为不更改的主代码和可根据不同需求进行更改的客制化代码,该客制化代码如各国语言翻译字符、铃声、图片等等。
通常,在开发工程师更改完客制化代码部分后,需要对该定制化软件进行重新编译得到新的软件版本。然而,现有的编译方式均依赖人工操作,即分别人工操作编译主代码部分和客制化代码部分,由于开发工程师每次人工操作编译均需要花费较长时间,导致编译效率较低。
发明内容
本申请提供一种软件的编译方法、装置及系统,能够实现编译的智能化,提高编译效率。
本申请第一方面提供一种软件的编译方法,包括:第一编译装置接收对待编译软件的第一类代码的编译指令,其中,所述待编译软件包括所述第一类代码和第二类代码,所述第一类代码为在所述待编译软件的不同版本中不作更新的代码,所述第二类代码为可根据所述待编译软件的不同版本进行更新的代码;对所述第一类代码进行第一编译,并在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译;以及,将所述第一编译得到的所述第一类代码的镜像文件上传至服务器,以及由所述第二编译装置将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
其中,所述对所述第一类代码进行第一编译,并在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译的步骤具体为:采用Jenkins集成开发工具对所述待编译软件的代码进行集成,并对所述第一类代码进行第一编译;以及,当满足预定条件时产生对所述第二类代码的编译指令,以通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。
其中,所述采用Jenkins集成开发工具对待编译软件的代码进行集成的步骤具体为:采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑,并集成所述待编译软件的所述待编译版本的里程碑的代码;所述预定条件为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间。
其中,所述第一编译装置和所述第二编译装置为同一服务器,或所述第一编译装置和所述第二编译装置为不同服务器。
其中,所述待编译的软件包括多组第二类代码,所述在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译的步骤具体为:对在满足预定条件时产生对所述多组第二类代码的编译指令,以触发第二编译装置分别对所述多组第二类代码进行第二编译。
本申请第二方面提供一种软件的编译装置,包括:接收模块,用于接收对待编译软件的第一类代码的编译指令,其中,所述待编译软件包括所述第一类代码和第二类代码,所述第一类代码为在所述待编译软件的不同版本中不作更新的代码,所述第二类代码为可根据所述待编译软件的不同版本进行更新的代码;编译模块,用于对所述第一类代码进行第一编译;触发模块,用于在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器;上传模块,用于将所述第一编译得到的所述第一类代码的镜像文件上传至服务器。
其中,所述编译模块具体用于采用Jenkins集成开发工具对所述待编译软件的代码进行集成,并对所述第一类代码进行第一编译;所述触发模块具体用于当满足预定条件时产生对所述第二类代码的编译指令,以通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。
其中,所述编译模块执行所述采用Jenkins集成开发工具对所述待编译软件的代码进行集成的步骤包括:采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑,并集成所述待编译软件的所述待编译版本的里程碑的代码;所述预定条件为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间。
其中,所述第一编译装置为服务器。
本申请第三方面提供一种软件的编译系统,包括相互连接的第一编译装置和第二编译装置,其中,所述第一编译装置为上面所述的软件的编译装置;所述第二编译装置用于对待编译软件的第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
上述方案中,第一编译装置在接收到对待编译软件的第一类代码的编译指令时,执行对该第一类代码的第一编译,并在满足预定条件时产生第二类代码的编译指令以触发第二编译装置对第二类代码的第二编译,使得第一类代码和第二类代码的编译智能化关联启动,实现了对待编译软件的智能化编译,而无需分别人工操作编译第一、第二类代码,故提高了编译效率,且节省了人力成本。
附图说明
图1是本申请软件的编译方法一实施方式的流程图;
图2是本申请软件的编译方法另一实施方式的流程图;
图3是本申请软件的编译装置一实施方式的结构示意图;
图4是本申请软件的编译系统一实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
请参阅图1,图1是本申请软件的编译方法一实施方式的流程图。本实施方式中,所述方法包括:
S11:第一编译装置接收对待编译软件的第一类代码的编译指令。
其中,该待编译软件包括该第一类代码和第二类代码,该第一类代码为在该待编译软件的不同版本中不作更新的代码,该第二类代码为可根据该待编译软件的不同版本进行更新的代码。该第一类代码例如为该待编译软件的计算机程序部分,该第二类代码例如为该待编译软件的资源部分,如各国语言翻译字符、铃声、图片等,针对不同的第二类代码,可编译生成不同的软件版本。
在完成待编译软件的某一版本开发后,需要将该待编译软件的第一类代码和第二类代码进行编译。具体,开发人员向第一编译装置输入对该第一类代码的编译指令,以指示该第一编译装置开始进行对该软件的编译。
S12:第一编译装置对所述第一类代码进行第一编译,并在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译。
本实施方式中,待编译软件的不同代码部分可分别分布在不同开发人员的计算机中。第一编译装置作为用于执行第一类代码编译的工具,在接收到上述对该第一类代码的编译指令时,启动第一Jenkins任务以进行对第一类代码的构建,即采用Jenkins集成开发工具将分布不同计算机的待编译软件的代码进行集成,并对所述第一类代码进行编译。可以理解的是,本申请中第一编译装置不限定采用Jenkins集成开发工具进行代码集成,在其他实施方式中,第一编译装置还可采用其他的集成开发工具,在此不作限定。
同时,第一编译装置还作为对第二类代码的触发装置,在满足预定条件时启动第二Jenkins任务,产生对该第二类代码进行编译的指令,以触发第二编译装置对第二类代码的构建。例如,第一编译装置可通过XVNC虚拟远程桌面控制技术控制该第二编译装置进行第二编译,第二编译装置响应该编译指令而获得配置参数并集成该待编译软件的代码,并根据所述配置参数对所述第二类代码进行编译。
其中,该预定条件可根据具体应用场景进行设定,如考虑到合理利用编译装置的运行资源,设定在晚上时间;或者考虑到时间的紧急性,设定为在第一编译装置接收到编译指令后即触发该第二编译。可选地,为避免开发人员重新更改新版本的代码,保证待编译软件的版本匹配,该预定条件为在接收到编译指令后至完成第一编译的过程中触发该第二编译。
S13:第一编译装置将所述第一编译得到的所述第一类代码的镜像文件上传至服务器,以及由所述第二编译装置将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
例如,第一编译装置和第二编译装置均与服务器建立连接。第一编译装置在进行完成上述第一编译后得到第一类代码的镜像文件,将该第一类代码的镜像文件上传至该服务器。第二编译装置在进行完成上述第二编译后得到第二类代码的镜像文件,并将该第二类代码的镜像文件上传至该服务器。该服务器接收到第一、第二类代码的镜像文件后,将该镜像文件作为待编译软件的一个新版本,以提供给用户下载使用。
本实施方式中,第一编译装置在接收到对待编译软件的第一类代码的编译指令时,执行对该第一类代码的第一编译,并在满足预定条件时产生第二类代码的编译指令以触发第二编译装置对第二类代码的第二编译,使得第一类代码和第二类代码的编译智能化关联启动,实现了对待编译软件的智能化编译,而无需分别人工操作编译第一、第二类代码,故提高了编译效率,且节省了人力成本。而且,第一类代码和第二类代码的智能关联编译,保证了待编译软件集成的完整性及版本的匹配。
请参阅图2,图2是本申请软件的编译方法另一实施方式的流程图。本实施方式中,所述方法包括:
S21:第一编译装置接收对待编译软件的第一类代码的编译指令。
其中,所述待编译软件包括所述第一类代码和第二类代码,所述第一类代码为在所述待编译软件的不同版本中不作更新的代码,所述第二类代码为可根据所述待编译软件的不同版本进行更新的代码。
S22:第一编译装置采用Jenkins集成开发工具(基于Java开发的一种持续集成工具)对所述待编译软件的代码进行集成,当满足预定条件时产生对所述第二类代码进行编译的指令,以通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。
其中,所述采用Jenkins集成开发工具对所述待编译软件的代码进行集成的步骤可具体为:采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑;集成所述待编译软件的所述待编译版本的里程碑的代码。其中,所述里程碑即为用于识别软件的不同版本的标识。在进行构建过程中,第一编译装置将当前待编译软件的代码标记作为新一版本的里程碑,标记完成后,下载标记为该新一版本的里程碑的代码进行集成,再进行相应编译。
本实施方式中,该预定条件为已完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑。即第一编译装置在完成上述里程碑的标记后,立即产生第二类代码的编译指令,以保证第一、第二编译装置集成同一里程碑的代码,进一步确保版本的匹配。在其他实施例中,该预定条件还可设置定时,例如为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间,具体如达到在完成上述里程碑的标记后的1个小时。其中,如将该定时设置为0,则相当于本实施方式的完成上述里程碑的标记后立即产生第二类代码的编译指令。
本实施方式中,第一编译装置在linux系统下运用XVNC虚拟远程桌面控制技术控制第二编译装置。即,第一编译装置和第二编译装置分别部署虚拟网络计算机(VirtualNetworkComputer,简称:VNC)的服务器端和客户端,以实现第二Jenkins任务在执行过程中启用该服务来虚拟出远程桌面,模拟人工点击操作。例如,第一编译装置作为VNC的服务器端在检测到满足预定条件时,启动VNC服务与第二编译装置建立连接,并通过perl语言的WWW::Mechanize模块登录Jenkins构建第二类代码的任务页面,并调用python脚本提交预先设定的配置参数表及编译申请以启动第二编译装置的构建任务,进而实现自动化配置第二类代码,并自动提交第二类代码的编译请求。第二编译装置接收该构建任务,即根据该配置参数下载该待编译软件的待编译版本里程碑的代码以完成集成,并对集成的第二类代码进行编译。
S23:第一编译装置对所述第一类代码进行第一编译。
可以理解的是,本实施方式仅为便于说明第二编译在里程碑标记完成后执行而将第二编译置于S22中,第一编译置于S23中,但并不能用作限定第一编译和第二编译的先后顺序。在不同实施例中,本申请的第一编译和第二编译可以同时启动执行、先启动第一编译后启动第二编译、或先启动第二编译后启动第一编译,故本申请对第一、第二编译的先后顺序不作任何限制。
S24:第一编译装置将所述第一编译得到的所述第一类代码的镜像文件上传至服务器,以及由所述第二编译装置将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
可选地,本申请可支持多个版本的同时编译。对应地,上述待编译的软件可包括多组第二类代码。所述在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译的步骤具体为:对在满足预定条件时产生对所述多组第二类代码的编译指令,以触发第二编译装置对所述多组第二类代码分别进行第二编译。例如,第二编译装置相应该编译指令而获得预先设置的配置参数表,确定所需编译的多组第二类代码,对确定的多组第二类代码进行编译。编译完成后,第二编译装置分别将代表不同版本的多组第二类代码的镜像文件上传至服务器。
可选地,上述第一、第二编译装置在可实时输出编译log,且在编译通过或失败时,发送邮件通知,以便相关人员及时了解编译进度。
上述实施方式中,所述第一编译装置和所述第二编译装置可集成在一物理机构中,或分别为不同的独立物理结构。例如,该所述第一编译装置和所述第二编译装置可为同一服务器或为不同服务器。
可以理解是,上述第一编译装置和第二编译装置仅为用于执行第一、第二类代码的编译装置的统称。在实际应用中,为加快编译速度,该第一编译装置和第二编译装置还可为多个编译器的集成。例如,第一编译装置为多个服务器的集成,第二编译装置也为多个服务器的集成。
上述方案可带来的有益效果如下:
1)整体性:把第一、第二类代码的编译操作合二为一,不需要分别手动进行配置和提交编译请求,同时避免了手动操作上的误差,且提高了编译效率;
2)操作灵活简便:支持一键启动第一、第二类代码的编译,支持定时启动第二类代码的编译。简单的参数配置即可控制第二类代码的编译任务的执行;
3)通用性:支持多个版本的第二类代码编译,所有版本均共用同一套自动化脚本,第一编译装置可根据该自动化脚本启动所有版本的第二类代码的编译,维护简便;
4)拓展性:第二类代码编译以独立模块实现自动化脚本,可嵌入到第一类代码构建的集成脚本中的任意地方,使得可在第一类代码的构建过程的任意时刻启动第二编译,代码结构清晰,低耦合度的代码设计使得脚本的拓展性更强;
5)节省成本:在第一类代码编译的同时自动触发第二类代码编译的同步进行,不需要手动操作,节省手动配置过程以及有效利用版本编译时间,从而提高了版本集成效率,省时省人力。
请参阅图3,图3是本申请软件的编译装置一实施方式的结构示意图。本实施方式中,所述编译装置300即为上述第一编译装置,包括接收模块310、编译模块320、触发模块330及上传模块340。
接收模块310用于接收对待编译软件的第一类代码的编译指令。
其中,该待编译软件包括该第一类代码和第二类代码,该第一类代码为在该待编译软件的不同版本中不作更新的代码,该第二类代码为可根据该待编译软件的不同版本进行更新的代码。该第一类代码例如为该待编译软件的计算机程序部分,该第二类代码例如为该待编译软件的资源部分,如各国语言翻译字符、铃声、图片等,针对不同的第二类代码,可编译生成不同的软件版本。
所述对待编译软件的第一类代码的编译指令可由用户输入。
编译模块320用于对所述第一类代码进行第一编译。
本实施方式中,待编译软件的不同代码部分可分别分布在不同开发人员的计算机中。编译模块320作为用于执行第一类代码编译的工具,在接收到上述对该第一类代码的编译指令时,启动第一Jenkins任务以进行对第一类代码的构建,如采用Jenkins集成开发工具对所述待编译软件的代码进行集成,并对所述第一类代码进行第一编译。可以理解的是,本申请中第一编译装置不限定采用Jenkins集成开发工具进行代码集成,在其他实施方式中,第一编译装置还可采用其他的集成开发工具,在此不作限定。
可选地,编译模块320执行所述采用Jenkins集成开发工具对所述待编译软件的代码进行集成的步骤可具体为:采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑;集成所述待编译软件的所述待编译版本的里程碑的代码。
触发模块330用于在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
触发模块330作为对第二类代码的触发装置,在编译模块320进行构建过程中,当满足预定条件时启动第二Jenkins任务,产生对该第二类代码进行编译的指令,以触发第二编译装置对第二类代码的构建。例如,触发模块330可通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。第二编译装置响应该编译指令而获得配置参数并集成该待编译软件的代码,并根据所述配置参数对所述第二类代码进行编译,并将该第二类代码的镜像文件上传至连接的服务器。
其中,该预定条件可根据具体应用场景进行设定。可选地,为保证待编译软件的版本匹配,该预定条件为在接收到编译指令后至完成第一编译的过程中触发该第二编译。进一步地,所述预定条件可为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间。该设定时间可设置为任意值,如1个小时、0(即表示在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后立刻触发第二编译)等。
需要说明的是,本申请对第一、第二编译的先后顺序不作任何限制,例如第一编译和第二编译可以同时启动执行、先启动第一编译后启动第二编译、或先启动第二编译后启动第一编译。
上传模块340用于将所述第一编译得到的所述第一类代码的镜像文件上传至服务器。
本实施方式中,上传模块340与第二编译装置均与服务器建立连接。上传模块340在进行完成上述第一编译后得到第一类代码的镜像文件,将该第一类代码的镜像文件上传至该服务器。而第二编译装置在进行完成上述第二编译后得到第二类代码的镜像文件,并将该第二类代码的镜像文件上传至该服务器。该服务器接收到第一、第二类代码的镜像文件后,将该镜像文件作为待编译软件的一个新版本,以提供给用户下载使用。
可选地,本申请可支持多个版本的同时编译。对应地,上述待编译的软件可包括多组第二类代码。所述触发模块330具体用于在:对在满足预定条件时产生对所述多组第二类代码的编译指令,以触发第二编译装置对所述多组第二类代码分别进行第二编译。
可选地,上述编译模块320还可用于实时输出编译log,且在编译通过或失败时,发送邮件通知,以便相关人员及时了解编译进度。
上述实施方式中,该第一编译装置300可为服务器。所述第二编译装置还可作为第一编译装置300的模块设置在所述第一编译装置300中。
可以理解是,上述第一编译装置300和第二编译装置仅为用于执行第一、第二类代码的编译装置的统称。在实际应用中,为加快编译速度,该第一编译装置和第二编译装置还可为多个编译器的集成。例如,第一编译装置为多个服务器的集成,第二编译装置也为多个服务器的集成。上述装置实施例中的模块分别用于执行上述方法实施例中的对应步骤,故上述模块的具体说明可参与对应步骤的相关说明,在此不作赘述。
请参阅图4,图4是本申请软件的编译系统一实施方式的结构示意图。本实施方式中,所述编译系统包括相互连接的第一编译装置410和第二编译装置420。
其中,第一编译装置410即为上面实施方式中所述的第一编译装置。第二编译装置420即为上述实施方式中所述的第二编译装置,用于对待编译软件的第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。具体说明请参阅上述实施方式中的描述。
上述方案中,第一编译装置在接收到对待编译软件的第一类代码的编译指令时,执行对该第一类代码的第一编译,并在满足预定条件时产生第二类代码的编译指令以触发第二编译装置对第二类代码的第二编译,使得第一类代码和第二类代码的编译智能化关联启动,实现了对待编译软件的智能化编译,而无需分别人工操作编译第一、第二类代码,故提高了编译效率,且节省了人力成本。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种软件的编译方法,其特征在于,包括:
第一编译装置接收对待编译软件的第一类代码的编译指令,其中,所述待编译软件包括所述第一类代码和第二类代码,所述第一类代码为在所述待编译软件的不同版本中不作更新的代码,所述第二类代码为可根据所述待编译软件的不同版本进行更新的代码;
对所述第一类代码进行第一编译,并在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译;以及
将所述第一编译得到的所述第一类代码的镜像文件上传至服务器,以及由所述第二编译装置将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一类代码进行第一编译,并在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译的步骤具体为:
采用Jenkins集成开发工具对所述待编译软件的代码进行集成,并对所述第一类代码进行第一编译;以及
当满足预定条件时产生对所述第二类代码的编译指令,以通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。
3.根据权利要求2所述的方法,其特征在于,所述采用Jenkins集成开发工具对待编译软件的代码进行集成的步骤具体为:
采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑,并集成所述待编译软件的所述待编译版本的里程碑的代码;
所述预定条件为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间。
4.根据权利要求1所述的方法,其特征在于,所述第一编译装置和所述第二编译装置为同一服务器,或所述第一编译装置和所述第二编译装置为不同服务器。
5.根据权利要求1所述的方法,其特征在于,所述待编译的软件包括多组第二类代码,
所述在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译的步骤具体为:
对在满足预定条件时产生对所述多组第二类代码的编译指令,以触发第二编译装置分别对所述多组第二类代码进行第二编译。
6.一种软件的编译装置,其特征在于,包括:
接收模块,用于接收对待编译软件的第一类代码的编译指令,其中,所述待编译软件包括所述第一类代码和第二类代码,所述第一类代码为在所述待编译软件的不同版本中不作更新的代码,所述第二类代码为可根据所述待编译软件的不同版本进行更新的代码;
编译模块,用于对所述第一类代码进行第一编译;
触发模块,用于在满足预定条件时产生对所述第二类代码的编译指令,以触发第二编译装置对所述第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器;
上传模块,用于将所述第一编译得到的所述第一类代码的镜像文件上传至服务器。
7.根据权利要求6所述的装置,其特征在于,所述编译模块具体用于采用Jenkins集成开发工具对所述待编译软件的代码进行集成,并对所述第一类代码进行第一编译;
所述触发模块具体用于当满足预定条件时产生对所述第二类代码的编译指令,以通过XVNC虚拟远程桌面控制技术控制所述第二编译装置获得配置参数并根据所述配置参数对所述第二类代码进行第二编译。
8.根据权利要求7所述的装置,其特征在于,所述编译模块执行所述采用Jenkins集成开发工具对所述待编译软件的代码进行集成的步骤包括:
采用Jenkins集成开发工具将所述待编译软件的当前代码标记为待编译版本的里程碑,并集成所述待编译软件的所述待编译版本的里程碑的代码;
所述预定条件为达到在完成将所述待编译软件的当前代码标记为所述待编译版本的里程碑后的设定时间。
9.根据权利要求6所述的装置,其特征在于,所述第一编译装置为服务器。
10.一种软件的编译系统,其特征在于,包括相互连接的第一编译装置和第二编译装置,其中,
所述第一编译装置为权利要求6至9任一项所述的软件的编译装置;
所述第二编译装置用于对待编译软件的第二类代码进行第二编译,并将所述第二编译得到的所述第二类代码的镜像文件上传至服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510552984.9A CN105138387A (zh) | 2015-08-31 | 2015-08-31 | 一种软件的编译方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510552984.9A CN105138387A (zh) | 2015-08-31 | 2015-08-31 | 一种软件的编译方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138387A true CN105138387A (zh) | 2015-12-09 |
Family
ID=54723744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510552984.9A Pending CN105138387A (zh) | 2015-08-31 | 2015-08-31 | 一种软件的编译方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138387A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760208A (zh) * | 2016-04-12 | 2016-07-13 | 芯讯通无线科技(上海)有限公司 | 计算机程序编译方法及装置 |
CN105867993A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
CN105867992A (zh) * | 2016-03-28 | 2016-08-17 | 乐视控股(北京)有限公司 | 代码编译方法和装置 |
CN105930230A (zh) * | 2016-04-18 | 2016-09-07 | 乐视控股(北京)有限公司 | 多层镜像的管理方法 |
CN109144518A (zh) * | 2018-08-21 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于jenkins的镜像文件构建方法及装置 |
CN109213492A (zh) * | 2018-09-21 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种自动化编译安装方法、装置、设备及存储介质 |
CN111813382A (zh) * | 2020-06-23 | 2020-10-23 | 四川虹美智能科技有限公司 | 无形资产管理系统及方法 |
CN112585573A (zh) * | 2020-02-26 | 2021-03-30 | 深圳市大疆创新科技有限公司 | 编译控制方法、编译控制装置和存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0582738A1 (en) * | 1992-08-12 | 1994-02-16 | International Business Machines Corporation | Language compiler |
WO2000002149A1 (en) * | 1998-07-07 | 2000-01-13 | Signature-Mail.Com, L.L.C. | System and method for personalizing electronic mail messages |
EP1099160A1 (en) * | 1999-06-01 | 2001-05-16 | Swain W. Porter | User centric program product distribution |
CN101937356A (zh) * | 2010-09-15 | 2011-01-05 | 青岛海信移动通信技术股份有限公司 | 一种编译WebKit浏览器的方法及装置 |
CN102156638A (zh) * | 2010-02-11 | 2011-08-17 | 崴联科技股份有限公司 | 客制化软件源码的更新方法 |
CN102193812A (zh) * | 2011-06-03 | 2011-09-21 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
CN102279765A (zh) * | 2010-06-14 | 2011-12-14 | 微软公司 | 预编译托存托管代码 |
CN103294514A (zh) * | 2013-06-26 | 2013-09-11 | 深圳Tcl新技术有限公司 | 系统软件版本集成方法、编译服务器及系统 |
CN103309646A (zh) * | 2012-03-07 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种软件本地化的方法和装置 |
CN103927213A (zh) * | 2014-04-18 | 2014-07-16 | 广州金山网络科技有限公司 | 一种文件编译方法及编译装置 |
CN104239114A (zh) * | 2013-11-12 | 2014-12-24 | 新华瑞德(北京)网络科技有限公司 | 应用程序的编译处理方法及装置 |
CN104615462A (zh) * | 2015-01-26 | 2015-05-13 | 北京邮电大学 | 跨平台的移动应用生成服务端及系统 |
CN104731602A (zh) * | 2015-03-31 | 2015-06-24 | 上海盈方微电子有限公司 | 一种分离安卓镜像烧录流程的方法 |
CN104731581A (zh) * | 2015-02-03 | 2015-06-24 | 惠州Tcl移动通信有限公司 | 一种基于Android系统的框架代码修改方法及装置 |
-
2015
- 2015-08-31 CN CN201510552984.9A patent/CN105138387A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0582738A1 (en) * | 1992-08-12 | 1994-02-16 | International Business Machines Corporation | Language compiler |
WO2000002149A1 (en) * | 1998-07-07 | 2000-01-13 | Signature-Mail.Com, L.L.C. | System and method for personalizing electronic mail messages |
EP1099160A1 (en) * | 1999-06-01 | 2001-05-16 | Swain W. Porter | User centric program product distribution |
CN102156638A (zh) * | 2010-02-11 | 2011-08-17 | 崴联科技股份有限公司 | 客制化软件源码的更新方法 |
CN102279765A (zh) * | 2010-06-14 | 2011-12-14 | 微软公司 | 预编译托存托管代码 |
CN101937356A (zh) * | 2010-09-15 | 2011-01-05 | 青岛海信移动通信技术股份有限公司 | 一种编译WebKit浏览器的方法及装置 |
CN102193812A (zh) * | 2011-06-03 | 2011-09-21 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
CN103309646A (zh) * | 2012-03-07 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种软件本地化的方法和装置 |
CN103294514A (zh) * | 2013-06-26 | 2013-09-11 | 深圳Tcl新技术有限公司 | 系统软件版本集成方法、编译服务器及系统 |
CN104239114A (zh) * | 2013-11-12 | 2014-12-24 | 新华瑞德(北京)网络科技有限公司 | 应用程序的编译处理方法及装置 |
CN103927213A (zh) * | 2014-04-18 | 2014-07-16 | 广州金山网络科技有限公司 | 一种文件编译方法及编译装置 |
CN104615462A (zh) * | 2015-01-26 | 2015-05-13 | 北京邮电大学 | 跨平台的移动应用生成服务端及系统 |
CN104731581A (zh) * | 2015-02-03 | 2015-06-24 | 惠州Tcl移动通信有限公司 | 一种基于Android系统的框架代码修改方法及装置 |
CN104731602A (zh) * | 2015-03-31 | 2015-06-24 | 上海盈方微电子有限公司 | 一种分离安卓镜像烧录流程的方法 |
Non-Patent Citations (1)
Title |
---|
杨帆: "Windows平台下的工控系统软件开发", 《兵工自动化》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105867992A (zh) * | 2016-03-28 | 2016-08-17 | 乐视控股(北京)有限公司 | 代码编译方法和装置 |
CN105867993A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
CN105760208A (zh) * | 2016-04-12 | 2016-07-13 | 芯讯通无线科技(上海)有限公司 | 计算机程序编译方法及装置 |
CN105930230A (zh) * | 2016-04-18 | 2016-09-07 | 乐视控股(北京)有限公司 | 多层镜像的管理方法 |
CN109144518A (zh) * | 2018-08-21 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于jenkins的镜像文件构建方法及装置 |
CN109213492A (zh) * | 2018-09-21 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种自动化编译安装方法、装置、设备及存储介质 |
CN112585573A (zh) * | 2020-02-26 | 2021-03-30 | 深圳市大疆创新科技有限公司 | 编译控制方法、编译控制装置和存储介质 |
WO2021168711A1 (zh) * | 2020-02-26 | 2021-09-02 | 深圳市大疆创新科技有限公司 | 编译控制方法、编译控制装置和存储介质 |
CN111813382A (zh) * | 2020-06-23 | 2020-10-23 | 四川虹美智能科技有限公司 | 无形资产管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138387A (zh) | 一种软件的编译方法、装置及系统 | |
CN104199706B (zh) | 一种eMMC的固件升级方法及其设备 | |
US8433448B2 (en) | Same code base in irrigation control devices and related methods | |
US8224493B2 (en) | Same code base in irrigation control devices and related methods | |
CN106126273B (zh) | 一种升级bios的方法 | |
WO2017185606A1 (zh) | 基于overlay机制的APK开发方法及系统 | |
CN108345265B (zh) | 硬件设备的编程方法、可视化编程平台、存储器和处理器 | |
CN105893070A (zh) | 应用的sdk的升级方法及系统 | |
CN104077131B (zh) | 一种组件部署系统及方法 | |
CN105373407A (zh) | 嵌入式系统dsp和fpga在线升级方法 | |
EP2508954A1 (en) | System and method for the configuration of a clustered simulation network | |
CN103092633A (zh) | 一种基于1553b总线的伺服控制软件在线烧录方法 | |
CN104407878A (zh) | C6000数字信号处理器在线升级方法 | |
CN108897575A (zh) | 电子设备的配置方法以及配置系统 | |
CN104077204A (zh) | 可重构的8位rsic单片机仿真器 | |
CN104898440A (zh) | 家电控制方法和装置 | |
CN102129376A (zh) | 一种上传和下载软件更新信息的方法、设备和系统 | |
CN104166570B (zh) | 一种在线更新文件的方法、设备及系统 | |
CN104683157A (zh) | 家用路由器中的固件自动管理方法 | |
CN104731579A (zh) | 一种变频器键盘及变频器参数拷贝方法 | |
CN111880793A (zh) | 一种基于二进制文件的hmi组态配置系统和方法 | |
CN107092472A (zh) | 一种动态发布方法及设备 | |
CN104965720A (zh) | 应用安装方法和装置 | |
CN112732291B (zh) | 一种产品功能开发方法、装置、存储介质及电子装置 | |
CN102455920A (zh) | 远程固件更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |
|
RJ01 | Rejection of invention patent application after publication |