买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种项目的编译方法及装置_小米科技有限责任公司_201510324308.6 

申请/专利权人:小米科技有限责任公司

申请日:2015-06-12

公开(公告)日:2020-06-19

公开(公告)号:CN106293683B

主分类号:G06F8/41(20180101)

分类号:G06F8/41(20180101);G06F8/71(20180101);G06F11/36(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.06.19#授权;2017.06.27#实质审查的生效;2017.01.04#公开

摘要:本公开是关于一种项目的编译方法及装置,该方法包括:在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识;获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件;编译预设指定版本的测试文件和上一个正确版本的测试文件;显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。本公开可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。

主权项:1.一种项目的编译方法,其特征在于,包括:在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关模块标识;获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。

全文数据:一种项目的编译方法及装置技术领域[0001]本发明涉及通信技术领域,更具体的说,涉及项目的编译方法及装置。背景技术[0002]在项目开发的过程中,项目负责人通常会将一个项目分成若干个模块,并将每个模块交给若干个开发小组,以使每个开发小组共同开发一个项目,从而提高开发进度。[0003]每个开发小组在开发模块的过程中,会阶段性的在整个项目中测试自己开发的模块。一个项目通常包括很多个模块,开发小组为了测试自己开发的模块在整个项目中是否编译正确,需要编译整个项目中的所有模块。[0004]在目标开发小组需要测试自己所开发的目标模块时,目标开发小组需要编译整个项目中的所有模块。在整个项目中的所有模块完全编译正确时,整个项目的所有模块会生成一个具有相应功能的可执行文件,以使目标开发小组可以利用可执行文件来测试自己所开发的目标模块对应的部分。[0005]但是,在编译过程中,在整个项目中的任何一个其他开发小组所开发的相关模块出现错误时,整个项目都无法生成一个具有相应功能的可执行文件,目标开发小组也就无法测试自己所开发的目标模块,从而影响目标开发小组的开发进度。[0006]因此,目前相关的项目编译方法使得一个项目中的开发小组之间彼此限制对方的开发进度,进而降低了整个项目的开发进度,以使项目的开发效率低下。发明内容[0007]为克服相关技术中存在的问题,本公开提供一种项目的编译方法及装置,以使目标开发小组在测试项目中的目标模块的过程中,不会受到该项目中其他相关模块的干扰,以提尚开发项目的效率。[0008]根据本公开实施例的第一方面,提供一种项目的编译方法,包括:[0009]在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关丰吴块标识;[0010]获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;[0011]编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;[0012]显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。[0013]可选的,所述获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件的步骤包括:[0014]获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的最新版本的测试文件;[0015]编译所述预设指定版本的测试文件和所述最新版本的测试文件;[0016]在编译过程中所述最新版本的测试文件出现错误时,获取所述相关模块标识对应的上一个正确版本的测试文件。[0017]可选的,在所述编译所述预设指定版本的测试文件和所述最新版本的测试文件的步骤之后,所述方法还包括:[0018]判断编译过程中所述最新版本的测试文件是否出现错误;[0019]在编译过程中所述最新版本的测试文件出现错误时,触发所述获取所述相关模块标识对应的上一个正确版本的测试文件的步骤;[0020]在编译过程中所述最新版本的测试文件未出现错误时,显示所述预设指定版本的测试文件和所述最新版本的测试文件的编译结果。[0021]可选的,在所述显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果之后,所述方法还包括:[0022]在所述编译结果为编译成功时,存储所述目标模块标识、所述预设指定版本与编译成功标识的对应关系,并存储所述相关模块标识、所述上一个正确版本与编译成功标识的对应关系。[0023]可选的,在所述显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果之后,所述方法还包括:[0024]在所述目标项目的编译结果为所述预设指定版本的测试文件编译失败时,存储所述目标模块标识、所述预设指定版本与编译失败标识的对应关系。[0025]根据本公开实施例的第二方面,提供一种项目的编译装置,包括:[0026]确定模块,用于在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关模块标识;[0027]获取模块,用于获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;[0028]编译模块,用于编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;[0029]第一显示模块,用于显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。[0030]可选的,所述获取模块包括:[0031]第一获取子模块,用于获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的最新版本的测试文件;[0032]编译子模块,用于编译所述预设指定版本的测试文件和所述最新版本的测试文件;[0033]第二获取子模块,用于在编译过程中所述最新版本的测试文件出现错误时,获取所述相关模块标识对应的上一个正确版本的测试文件。[0034]可选的,所述装置还包括:[0035]判断模块,用于判断编译过程中所述最新版本的测试文件是否出现错误;[0036]触发模块,用于在编译过程中所述最新版本的测试文件出现错误时,触发所述第二获取子模块;[0037]第二显示模块,用于在编译过程中所述最新版本的测试文件未出现错误时,显示所述预设指定版本的测试文件和所述最新版本的测试文件的编译结果。[0038]可选的,所述装置还包括:[0039]第一存储模块,用于在所述编译结果为编译成功时,存储所述目标模块标识、所述预设指定版本与编译成功标识的对应关系,并存储所述相关模块标识、所述上一个正确版本与编译成功标识的对应关系。[0040]可选的,所述装置还包括:[0041]第二存储模块,用于在所述目标项目的编译结果为所述预设指定版本的测试文件编译失败时,存储所述目标模块标识、所述预设指定版本与编译失败标识的对应关系。[0042]根据本公开实施例的第三方面,提供一种项目的编译装置,包括:[0043]处理器;[0044]用于存储处理器可执行指令的存储器;[0045]其中,所述处理器被配置为:[0046]在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关丰吴块标识;[0047]获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;[0048]编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;[0049]显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。[0050]本公开的实施例提供的技术方案可以包括以下有益效果:为了测试目标项目中的目标模块标识对应的预设指定版本的测试文件是否正确,在接收到编译目标项目的指令时,需要获取到目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件,再对预设指定版本的测试文件和上一个正确版本的测试文件进行编译,从而可以保证目标项目中其他的相关模块标识对应的测试文件不会出现错误,进而起到测试目标模块标识对应的预设指定版本的测试文件的目的。因此,本公开可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。[0051]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明[0052]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。[0053]图1是根据一示例性实施例示出的一种项目的编译方法的流程图。[0054]图2是根据一示例性实施例示出的另一种项目的编译方法的流程图。[0055]图3是根据一示例性实施例示出的又一种项目的编译方法的流程图。[0056]图4是根据一示例性实施例示出的一种项目的编译装置的示意图。[0057]图5是根据一示例性实施例示出的另一种项目的编译装置的示意图。[0058]图6是根据一示例性实施例示出的又一种项目的编译装置的示意图。[0059]图7是根据一示例性实施例示出的又一种项目的编译装置的示意图。[0060]图8是根据一示例性实施例示出的又一种项目的编译装置的示意图。[0061]图9是根据一示例性实施例示出的一种项目的编译装置的框图。具体实施方式[0062]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。[0063]图1是根据一示例性实施例示出的一种项目的编译方法的流程图,如图1所示,图1所示的项目的编译方法,可以用于终端中。本公开提供的项目的编译方法可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。该方法包括以下步骤。[0064]在步骤SI1中,在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0065]其中,本公开提供的方法可以应用于终端内,终端可以为台式电脑或笔记本电脑等设备。目标项目指的是可以利用软件开发工具所开发的软件项目,例如,目标项目可以为安卓系统的软件项目,目标项目还可以为某游戏的软件项目,目标项目也可以为某购物网站的软件项目。目标项目中可以包含很多个模块,可以将目标项目中的所有模块分类成目标模块和相关模块,目标模块为在目标项目中开发人员本次想要编译和测试的模块,相关模块为目标项目中开发人员本次不关注的其他模块。[0066]在不同的开发小组将目标模块和相关模块开发好以后,目标模块和相关模块会以测试文件的形式存在,开发小组会将测试文件存储到代码服务器中对应的文件夹下,以便于在编译目标项目时可以获取到不同模块对应的不同版本的测试文件。[0067]例如,假设目标项目为安卓系统的软件开发项目,在安卓系统中的目标模块为计算器模块,目标模块标识为JSQ,在安卓系统中的相关模块为浏览器模块,相关模块标识为LLQ。第一开发小组负责计算器模块的开发工作,第二开发小组负责浏览器模块的开发工作。在第一开发小组开发完JSQ对应的I.0版本的测试文件时,第一开发小组会将JSQ对应的I.〇版本的测试文件上传到代码服务器的\APP\JSQ的目录下;在第二开发小组开发完LLQ对应的I.0版本的测试文件时,第二开发小组会将JSQ对应的I.0版本的测试文件上传到代码服务器的\APP\LLQ的目录下。[0068]在终端接收到工作人员输入的编译目标项目的指令时,终端需要确定出目标项目中包含的目标模块标识和相关模块标识,这样便可以通过目标项目中的目标模块标识和相关模块标识来获取测试文件。[0069]终端可以通过目标项目对应的名单文件来确定出目标项目中包含的目标模块标识和相关模块标识,目标项目对应的名单文件包括"模块标识"、"获取的版本"、"下载目录"和"是否为目标模块标识"这四个字段。其中,关于第四个字段"是否为目标模块标识"可以由开发人员来自行修改,"是否为目标模块标识"的默认值为否,开发人员可以将需要测试的目标模块的模块标识对应的"是否为目标模块标识"字段改写为"是",这样便将需要测试的目标模块的模块标识确定为目标模块标识,从而可以区分出目标项目中的目标模块标识和相关模块标识。另外,关于第二个字段"获取的版本"的默认值为"上一个正确版本",如果开发人员希望测试某一个指定的版本,那么开发人员需要将"获取的版本"的默认值改写成需要测试的版本号。[0070]例如,请参见表1所示,表1所示的为目标项目对应的名单文件。假设目标项目为安卓系统的软件开发项目,安卓系统包括计算器模块、浏览器模块和天气模块,计算器模块的模块标识为JSQ,浏览器模块的模块标识为LLQ,天气模块的模块标识为TQ。由于开发人员想要将浏览器模块的模块标识LLQ确定为目标模块标识,那么开发人员便需要将模块标识LLQ对应的"是否为目标模块标识"字段的"否"改写成"是"。在开发人员将LLQ对应的"是否为目标模块标识"字段改写成"是"以后,那么在安卓系统中的目标模块标识为LLQ,在安卓系统中的相关模块标识包括JSQ和TQ,从而可以区分出安卓系统中的目标模块标识和相关模块标识。并且,由于开发人员想要测试模块标识LLQ对应的3.0版本的测试文件,所以开发人员需要将模块标识LLQ对应的"获取的版本"字段由"上一个正确版本"改写成"3.0版本"。[0071][0072]表1[0073]因此,在终端接收到工作人员输入的编译目标项目的指令时,终端可以根据目标项目对应的名单文件中的"是否为目标模块标识"字段来确定出目标模块标识和相关模块标识。其中,如果模块标识对应的"是否为目标模块标识"字段的内容为是,那么可以确定该模块标识为目标模块标识;如果模块标识对应的"是否为目标模块标识"字段的内容为否,那么可以确定该模块标识为相关模块标识。[0074]在步骤S12中,获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件。[0075]其中,在终端确定出目标项目中包含的目标模块标识和相关模块标识之后,终端便需要获取到目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件,以便于终端对预设指定版本的测试文件和上一个正确版本的测试文件进行编译。[0076]由于同一个模块标识可能对应多个不同的版本的测试文件,所以终端每一次编译目标项目时,终端都会将目标项目中的每一个模块标识的编译情况记录在预先建立的模块标识对应的数据库中。其中,模块标识对应的数据库包括"模块标识"、"版本号"和"是否编译成功"这三个字段。[0077]在终端获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件的过程中,需要访问预先建立的每个模块标识对应的数据库和目标项目对应的名单文件。[0078]由于终端获取目标模块标识对应的预设指定版本的测试文件与获取相关模块标识对应的上一个正确版本的测试文件的过程不同,下面分别进行介绍。[0079]对于目标模块标识对应的预设指定版本为开发人员写入的版本号的情况,终端获取目标模块标识对应的预设指定版本的测试文件的步骤包括:首先,终端在目标项目对应的名单文件中获取目标模块标识对应的"获取的版本"的版本信息和"下载目录"的目录信息;然后,终端在代码服务器中利用获取到的目录信息确定到目标模块标识所在的文件夹;再次,终端在确定到的文件夹中利用版本信息查找到测试文件;最后,终端在代码服务器中将找到的测试文件下载到本地。[0080]例如,请参见表2所示,表2所示的为目标项目对应的名单文件。假设目标项目为安卓系统的软件开发项目,安卓系统包括计算器模块和浏览器模块,计算器模块的模块标识为JSQ,浏览器模块的模块标识为LLQ。在安卓系统中的目标模块标识为LLQ,在安卓系统中的相关模块标识为JSQ。在终端获取目标模块标识对应的预设指定版本的测试文件的过程中,首先,终端在安卓系统对应的名单文件中获取目标模块标识LLQ对应的"获取的版本"的版本信息3.0版本和"下载目录"的目录信息\APP\LLQ;然后,终端在代码服务器中利用获取到的目录信息\APP\LLQ确定到目标模块标识LLQ所在的文件夹LLQ;再次,终端在确定到的文件夹LLQ中利用版本信息3.0版本查找到测试文件;最后,终端在代码服务器中将找到的测试文件下载到本地。[0081][0082]表2[0083]对于目标模块标识对应的预设指定版本为最新版本的情况,终端获取目标模块标识对应的预设指定版本的测试文件的步骤包括:首先,终端在目标项目对应的名单文件中获取目标模块标识对应的"获取的版本"的版本信息和"下载目录"的目录信息;其次,终端在代码服务器中利用获取到的目录信息确定到目标模块标识所在的文件夹;再次,终端在确定到的文件夹中利用版本信息查找到测试文件;最后,终端在代码服务器中将找到的测试文件下载到本地。[0084]例如,请参见表3,表3所示的为目标项目对应的名单文件。假设目标项目为安卓系统的软件开发项目,安卓系统包括计算器模块和浏览器模块,计算器模块的模块标识为JSQ,浏览器模块的模块标识为LLQ。在安卓系统中的目标模块标识为LLQ,在安卓系统中的相关模块标识为JSQ。在终端获取目标模块标识对应的最新版本的测试文件的过程中,首先,终端在目标项目对应的名单文件中获取目标模块标识LLQ对应的"获取的版本"的版本信息"最新版本"和"下载目录"的目录信息\APP\LLQ;其次,终端在代码服务器中利用获取到的目录信息\APP\LLQ确定到目标模块标识LLQ所在的文件夹LLQ;再次,终端在确定到的文件夹LLQ中利用版本信息"最新版本"查找到测试文件;最后,终端在代码服务器中将找到的测试文件下载到本地。[0085][0086]表3[0087]对于终端获取相关模块标识对应的上一个正确版本的测试文件的情况,包括以下步骤:首先,终端在目标项目对应的名单文件中获取相关模块标识对应的"获取的版本"的版本信息和"下载目录"的目录信息;然后,终端在相关模块标识对应的数据库中确定版本信息对应的版本号;其次,终端在代码服务器中利用获取到的目录信息确定到目标模块标识所在的文件夹;再次,终端在确定到的文件夹中利用版本信息对应的版本号查找到测试文件;最后,终端在代码服务器中将找到的测试文件下载到本地。[0088]例如,请参见表4和表5所示,表4所示的为目标项目对应的名单文件,表5所示的为相关模块标识对应的数据库。假设目标项目为安卓系统的软件开发项目,安卓系统包括计算器模块和浏览器模块,计算器模块的模块标识为JSQ,浏览器模块的模块标识为LLQ。在安卓系统中的目标模块标识为LLQ,在安卓系统中的相关模块标识为JSQ。在终端获取相关模块标识对应的上一个正确版本的测试文件的过程中,首先,终端在目标项目对应的名单文件中获取相关模块标识JSQ对应的"获取的版本"的版本信息"上一个正确版本"和"下载目录"的目录信息\APP\JSQ;然后,终端在相关模块标识JSQ对应的数据库中确定版本信息"上一个正确版本"对应的版本号2.0版本;其次,终端在代码服务器中利用获取到的目录信息\APP\JSQ确定到目标模块标识JSQ所在的文件夹JSQ;再次,终端在确定到的文件夹JSQ中利用版本信息"上一个正确版本"对应的版本号2.0版本查找到测试文件;最后,终端在代码服务器中将找到的测试文件下载到本地。[0089][0090]i[0091][0092]表5[0093]在步骤S13中,编译预设指定版本的测试文件和上一个正确版本的测试文件。[0094]其中,在终端获取到目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件之后,终端需要开始编译预设指定版本的测试文件和上一个正确版本的测试文件。[0095]在步骤S14中,显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0096]其中,在终端编译完预设指定版本的测试文件和上一个正确版本的测试文件之后,终端会显示出编译结果。由于目标项目中的相关模块标识对应的上一个正确版本的测试文件是一定正确的,所以编译结果会出现两种情况,第一种情况为,目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件均编译正确,目标项目的所有模块会生成一个具有相应功能的可执行文件,以使开发人员可以利用可执行文件来测试自己所开发的目标模块对应的部分;第二种情况为,目标模块标识对应的预设指定版本的测试文件编译失败,而相关模块标识对应的上一个正确版本的测试文件编译正确,开发人员便可以针对目标模块标识对应的预设指定版本的测试文件编译失败的地方进行改进。[0097]因此,不管上述两种情况中的任何一种情况,测试过程中相关模块标识对应的上一个正确版本的测试文件都会编译正确,所以达成了开发人员测试目标模块标识对应的预设指定版本的测试文件的目的,即在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。[0098]在步骤S14之后,如果编译结果为编译成功,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译成功标识的对应关系,并在相关模块标识对应的数据库中存储相关模块标识、上一个正确版本与编译成功标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译成功的情况,以及每次相关模块标识对应的上一个正确版本的测试文件的编译成功的情况。如果目标项目的编译结果为预设指定版本的测试文件编译失败,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译失败标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译失败的情况。[0099]综上所述,在图1所示的实施例中,本公开为了测试目标项目中的目标模块标识对应的预设指定版本的测试文件是否正确,在接收到编译目标项目的指令时,需要获取到目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件,再对预设指定版本的测试文件和上一个正确版本的测试文件进行编译,从而可以保证目标项目中其他的相关模块标识对应的测试文件不会出现错误,进而起到测试目标模块标识对应的预设指定版本的测试文件的目的。因此,本公开可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。[0100]图2是根据一示例性实施例示出的另一种项目的编译方法的流程图,如图2所示,图2所示的项目的编译方法,可以用于终端中。图2为基于图1的一个可选的实施例,在图2所示的实施例中,与图1所示的实施例相同的部分可以参见图1所示的实施例中介绍和解释。图2所示的方法包括以下步骤。[0101]在步骤S21中,在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0102]在步骤S22中,获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的最新版本的测试文件。[0103]其中,在终端确定出目标项目中包含的目标模块标识和相关模块标识之后,为了保证能够编译到相关模块标识对应的最新版本的测试文件,终端需要获取相关模块标识对应的最新版本的测试文件。[0104]在步骤S23中,编译预设指定版本的测试文件和最新版本的测试文件。[0105]在步骤S24中,在编译过程中最新版本的测试文件出现错误时,获取相关模块标识对应的上一个正确版本的测试文件。[0106]其中,在终端编译预设指定版本的测试文件和最新版本的测试文件之后,如果在终端编译的过程中相关模块标识对应的最新版本的测试文件出现错误,那么终端为了保证相关模块标识对应的最新版本的测试文件的编译错误不会影响到目标模块标识对应的预设指定版本的测试文件的编译,终端需要获取到相关模块标识对应的上一个正确版本的测试文件。[0107]在终端编译过程中最新版本的测试文件出现错误之后,那么终端会在相关模块标识对应的数据库中存储相关模块标识、最新版本与编译失败标识的对应关系,以记录每次相关模块标识对应的最新版本的测试文件的编译情况。[0108]在步骤S25中,编译预设指定版本的测试文件和上一个正确版本的测试文件。[0109]其中,在终端获取到相关模块标识对应的上一个正确版本的测试文件之后,终端需要重新编译预设指定版本的测试文件和上一个正确版本的测试文件。[0110]在步骤S26中,显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0111]其中,在终端编译完预设指定版本的测试文件和上一个正确版本的测试文件之后,终端会显示出编译结果。由于目标项目中的相关模块标识对应的上一个正确版本的测试文件是一定正确的,所以编译结果会出现两种情况,第一种情况为,目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件均编译正确,目标项目的所有模块会生成一个具有相应功能的可执行文件,以使开发人员可以利用可执行文件来测试自己所开发的目标模块对应的部分;第二种情况为,目标模块标识对应的预设指定版本的测试文件编译失败,而相关模块标识对应的上一个正确版本的测试文件编译正确,开发人员便可以针对目标模块标识对应的预设指定版本的测试文件编译失败的地方进行改进。[0112]因此,不管上述两种情况中的任何一种情况,测试过程中相关模块标识对应的上一个正确版本的测试文件都会编译正确,所以达成了开发人员测试目标模块标识对应的预设指定版本的测试文件的目的,即在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。[0113]在步骤S26之后,如果编译结果为编译成功,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译成功标识的对应关系,并在相关模块标识对应的数据库中存储相关模块标识、上一个正确版本与编译成功标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译成功的情况,以及每次相关模块标识对应的上一个正确版本的测试文件的编译成功的情况。如果目标项目的编译结果为预设指定版本的测试文件编译失败,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译失败标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译失败的情况。[0114]图3是根据一示例性实施例示出的又一种项目的编译方法的流程图,如图3所示,图3所示的项目的编译方法,可以用于终端中。图3为基于图2的一个可选的实施例,在图3所示的实施例中,与图2所示的实施例相同的部分可以参见图2所示的实施例中介绍和解释。图3所示的方法包括以下步骤。[0115]在步骤S31中,在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0116]在步骤S32中,获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的最新版本的测试文件。[0117]在步骤S33中,编译预设指定版本的测试文件和最新版本的测试文件。[0118]在步骤S34中,判断编译过程中最新版本的测试文件是否出现错误,如果是,触发步骤S35,否则,触发步骤S38。[0119]其中,在终端编译完预设指定版本的测试文件和最新版本的测试文件之后,终端需要判断编译过程中相关模块标识对应的最新版本的测试文件是否出现错误,在编译过程中最新版本的测试文件出现错误时,那么为了保证相关模块标识对应的最新版本的测试文件的编译错误不会影响到目标模块标识对应的预设指定版本的测试文件的编译,终端需要触发步骤S35,以获取到相关模块标识对应的上一个正确版本的测试文件;在编译过程中最新版本的测试文件未出现错误时,那么终端需要触发步骤S38,以显示预设指定版本的测试文件和最新版本的测试文件的编译结果。[0120]在步骤S35中,获取相关模块标识对应的上一个正确版本的测试文件。[0121]在步骤S36中,编译预设指定版本的测试文件和上一个正确版本的测试文件。[0122]在步骤S37中,显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0123]其中,在终端编译完预设指定版本的测试文件和上一个正确版本的测试文件之后,终端会显示出编译结果。由于目标项目中的相关模块标识对应的上一个正确版本的测试文件是一定正确的,所以编译结果会出现两种情况,第一种情况为,目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件均编译正确,目标项目的所有模块会生成一个具有相应功能的可执行文件,以使开发人员可以利用可执行文件来测试自己所开发的目标模块对应的部分;第二种情况为,目标模块标识对应的预设指定版本的测试文件编译失败,而相关模块标识对应的上一个正确版本的测试文件编译正确,开发人员便可以针对目标模块标识对应的预设指定版本的测试文件编译失败的地方进行改进。[0124]因此,不管上述两种情况中的任何一种情况,测试过程中相关模块标识对应的上一个正确版本的测试文件都会编译正确,所以达成了开发人员测试目标模块标识对应的预设指定版本的测试文件的目的,即在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。[0125]在步骤S37之后,如果编译结果为编译成功,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译成功标识的对应关系,并在相关模块标识对应的数据库中存储相关模块标识、上一个正确版本与编译成功标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译成功的情况,以及每次相关模块标识对应的最新版本的测试文件的编译成功的情况。如果目标项目的编译结果为预设指定版本的测试文件编译失败,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译失败标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译失败的情况。[0126]在步骤S38中,显示预设指定版本的测试文件和最新版本的测试文件的编译结果。[0127]在步骤S38之后,如果编译结果为编译成功,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译成功标识的对应关系,并在相关模块标识对应的数据库中存储相关模块标识、最新版本与编译成功标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译成功的情况,以及每次相关模块标识对应的最新版本的测试文件的编译成功的情况。如果目标项目的编译结果为预设指定版本的测试文件编译失败,那么终端会在目标模块标识对应的数据库中存储目标模块标识、预设指定版本与编译失败标识的对应关系,这样可以记录每次目标模块标识对应的预设指定版本的测试文件的编译失败的情况。[0128]图4是根据一示例性实施例示出的一种项目的编译装置的示意图。本公开提供的项目的编译装置可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。参照图4,该装置包括确定模块11、获取模块12、编译模块13和第一显示模块14。其中:[0129]确定模块11,用于在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0130]获取模块12,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件。[0131]编译模块13,用于编译预设指定版本的测试文件和上一个正确版本的测试文件。[0132]第一显示模块14,用于显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0133]图5是根据一示例性实施例示出的另一种项目的编译装置的示意图。本公开提供的项目的编译装置可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。参照图5,该装置包括确定模块21、获取模块22、编译模块23和第一显示模块24,获取模块22包括第一获取子模块221、编译子模块222和第二获取子模块223。其中:[0134]确定模块21,用于在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0135]获取模块22,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件。[0136]编译模块23,用于编译预设指定版本的测试文件和上一个正确版本的测试文件。[0137]第一显示模块24,用于显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0138]第一获取子模块221,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的最新版本的测试文件。[0139]编译子模块222,用于编译预设指定版本的测试文件和最新版本的测试文件。[0140]第二获取子模块223,用于在编译过程中最新版本的测试文件出现错误时,获取相关模块标识对应的上一个正确版本的测试文件。[0141]图6是根据一示例性实施例示出的另一种项目的编译装置的示意图。本公开提供的项目的编译装置可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。参照图6,该装置包括确定模块31、获取模块32、编译模块33、第一显示模块34、判断模块35、触发模块36和第二显示模块37,获取模块32包括第一获取子模块321、编译子模块322和第二获取子模块323。其中:[0142]确定模块31,用于在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0143]获取模块32,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件。[0144]编译模块33,用于编译预设指定版本的测试文件和上一个正确版本的测试文件。[0145]第一显示模块34,用于显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0146]判断模块35,用于判断编译过程中最新版本的测试文件是否出现错误。[0147]触发模块36,用于在编译过程中最新版本的测试文件出现错误时,触发第二获取子模块323。[0148]第二显示模块37,用于在编译过程中最新版本的测试文件未出现错误时,显示预设指定版本的测试文件和最新版本的测试文件的编译结果。[0149]第一获取子模块321,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的最新版本的测试文件。[0150]编译子模块322,用于编译预设指定版本的测试文件和最新版本的测试文件。[0151]第二获取子模块323,用于在编译过程中最新版本的测试文件出现错误时,获取相关模块标识对应的上一个正确版本的测试文件。[0152]图7是根据一示例性实施例示出的又一种项目的编译装置的示意图。本公开提供的项目的编译装置可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。参照图7,该装置包括确定模块41、获取模块42、编译模块43、第一显示模块44和第一存储模块45。其中:[0153]确定模块41,用于在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0154]获取模块42,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件。[0155]编译模块43,用于编译预设指定版本的测试文件和上一个正确版本的测试文件。[0156]第一显示模块44,用于显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0157]第一存储模块45,用于在编译结果为编译成功时,存储目标模块标识、预设指定版本与编译成功标识的对应关系,并存储相关模块标识、上一个正确版本与编译成功标识的对应关系。[0158]图8是根据一示例性实施例示出的又一种项目的编译装置的示意图。本公开提供的项目的编译装置可以在测试目标项目中的目标模块标识对应的预设指定版本的测试文件的过程中,不受到该目标项目中其他相关模块的干扰,从而提高了开发目标项目的效率。参照图8,该装置包括确定模块51、获取模块52、编译模块53、第一显示模块54和第二存储模块55。其中:[0159]确定模块51,用于在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识。[0160]获取模块52,用于获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件。[0161]编译模块53,用于编译预设指定版本的测试文件和上一个正确版本的测试文件。[0162]第一显示模块54,用于显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0163]第二存储模块55,用于在目标项目的编译结果为预设指定版本的测试文件编译失败时,存储目标模块标识、预设指定版本与编译失败标识的对应关系。[0164]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。[0165]图9是根据一示例性实施例示出的一种项目的编译装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。[0166]参照图9,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入输出(IO的接口812,传感器组件814,以及通信组件816。[0167]处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。[0168]存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM,电可擦除可编程只读存储器(EEPROM,可擦除可编程只读存储器(EPROM,可编程只读存储器(PROM,只读存储器(ROM,磁存储器,快闪存储器,磁盘或光盘。[0169]电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。[0170]多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD和触摸面板(TP。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。[0171]音频组件810被配置为输出和或输入音频信号。例如,音频组件810包括一个麦克风(MIC,当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。[0172]I0接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。[0173]传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或C⑶图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。[0174]通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID技术,红外数据协会(IrDA技术,超宽带UWB技术,蓝牙(BT技术和其他技术来实现。[0175]在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC、数字信号处理器(DSP、数字信号处理设备(DSPD、可编程逻辑器件(PLD、现场可编程门阵列FPGA、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。[0176]在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是R0M、随机存取存储器(RAM、CD-ROM、磁带、软盘和光数据存储设备等。[0177]-种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种项目的编译方法,所述方法包括:在接收到编译目标项目的指令时,确定目标项目中包含的目标模块标识和相关模块标识;获取目标模块标识对应的预设指定版本的测试文件和相关模块标识对应的上一个正确版本的测试文件;编译预设指定版本的测试文件和上一个正确版本的测试文件;显示预设指定版本的测试文件和上一个正确版本的测试文件的编译结果。[0178]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。[0179]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

权利要求:1.一种项目的编译方法,其特征在于,包括:在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关模块标识;获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。2.根据权利要求1所述的项目的编译方法,其特征在于,所述获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件的步骤包括:获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的最新版本的测试文件;编译所述预设指定版本的测试文件和所述最新版本的测试文件;在编译过程中所述最新版本的测试文件出现错误时,获取所述相关模块标识对应的上一个正确版本的测试文件。3.根据权利要求2所述的项目的编译方法,其特征在于,在所述编译所述预设指定版本的测试文件和所述最新版本的测试文件的步骤之后,所述方法还包括:判断编译过程中所述最新版本的测试文件是否出现错误;在编译过程中所述最新版本的测试文件出现错误时,触发所述获取所述相关模块标识对应的上一个正确版本的测试文件的步骤;在编译过程中所述最新版本的测试文件未出现错误时,显示所述预设指定版本的测试文件和所述最新版本的测试文件的编译结果。4.根据权利要求1所述的项目的编译方法,其特征在于,在所述显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果之后,所述方法还包括:在所述编译结果为编译成功时,存储所述目标模块标识、所述预设指定版本与编译成功标识的对应关系,并存储所述相关模块标识、所述上一个正确版本与编译成功标识的对应关系。5.根据权利要求1所述的项目的编译方法,其特征在于,在所述显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果之后,所述方法还包括:在所述目标项目的编译结果为所述预设指定版本的测试文件编译失败时,存储所述目标模块标识、所述预设指定版本与编译失败标识的对应关系。6.-种项目的编译装置,其特征在于,包括:确定模块,用于在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关模块标识;获取模块,用于获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;编译模块,用于编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;第一显示模块,用于显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。7.根据权利要求6所述的项目的编译装置,其特征在于,所述获取模块包括:第一获取子模块,用于获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的最新版本的测试文件;编译子模块,用于编译所述预设指定版本的测试文件和所述最新版本的测试文件;第二获取子模块,用于在编译过程中所述最新版本的测试文件出现错误时,获取所述相关模块标识对应的上一个正确版本的测试文件。8.根据权利要求7所述的项目的编译装置,其特征在于,所述装置还包括:判断模块,用于判断编译过程中所述最新版本的测试文件是否出现错误;触发模块,用于在编译过程中所述最新版本的测试文件出现错误时,触发所述第二获取子模块;第二显示模块,用于在编译过程中所述最新版本的测试文件未出现错误时,显示所述预设指定版本的测试文件和所述最新版本的测试文件的编译结果。9.根据权利要求6所述的项目的编译装置,其特征在于,所述装置还包括:第一存储模块,用于在所述编译结果为编译成功时,存储所述目标模块标识、所述预设指定版本与编译成功标识的对应关系,并存储所述相关模块标识、所述上一个正确版本与编译成功标识的对应关系。10.根据权利要求6所述的项目的编译装置,其特征在于,所述装置还包括:第二存储模块,用于在所述目标项目的编译结果为所述预设指定版本的测试文件编译失败时,存储所述目标模块标识、所述预设指定版本与编译失败标识的对应关系。11.一种项目的编译装置,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:在接收到编译目标项目的指令时,确定所述目标项目中包含的目标模块标识和相关模块标识;获取所述目标模块标识对应的预设指定版本的测试文件和所述相关模块标识对应的上一个正确版本的测试文件;编译所述预设指定版本的测试文件和所述上一个正确版本的测试文件;显示所述预设指定版本的测试文件和所述上一个正确版本的测试文件的编译结果。

百度查询: 小米科技有限责任公司 一种项目的编译方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。