工程全量编译方法及其装置、设备、介质制造方法及图纸

技术编号:34409536 阅读:23 留言:0更新日期:2022-08-03 21:59
本申请公开一种工程全量编译方法及其装置、设备、介质,所述方法包括:响应作用于项目工程的全量编译指令,遍历所述项目工程中以层级进行部署的工作模块,确定出各所述工作模块各自对应的修改状态;根据各所述工作模块的修改状态,将修改源码的所述工作模块确定为源码编译模块,将未修改源码的所述工作模块确定为预编译模块;从远程模块库中获取各所述预编译模块相应的预编译产物,以根据各所述预编译产物对应编译各所述预编译模块,且基于各所述源码编译模块的修改源码产物编译各所述源码编译模块,以完成所述项目工程的全量编译。本申请借助预编译产物编译项目工程,有效提升项目工程的全量编译速率。工程的全量编译速率。工程的全量编译速率。

【技术实现步骤摘要】
工程全量编译方法及其装置、设备、介质


[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]进一步的实施例中,所述编译产物确定本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工程全量编译方法,其特征在于,包括如下步骤:响应作用于项目工程的全量编译指令,遍历所述项目工程中以层级进行部署的工作模块,确定出各所述工作模块各自对应的修改状态;根据各所述工作模块的修改状态,将修改源码的所述工作模块确定为源码编译模块,将未修改源码的所述工作模块确定为预编译模块;从远程模块库中获取各所述预编译模块相应的预编译产物,以根据各所述预编译产物对应编译各所述预编译模块,且基于各所述源码编译模块的修改源码产物编译各所述源码编译模块,以完成所述项目工程的全量编译。2.根据权利要求1所述的方法,其特征在于,所述响应作用于项目工程的全量编译指令,遍历所述项目工程中以层级进行部署的工作模块,确定出各所述工作模块各自对应的修改状态的步骤中,包括如下步骤:基于暂存模块池中具有的暂存模块,遍历所述项目工程的工作模块池中的工作模块,以对各所述工作模块进行修改状态识别,所述暂存模块池与工作模块池的模块部署结构相同;当校验出任一所述工作模块相对于其对应的暂存模块发生修改时,判断所述工作模块相对于所述暂存模块是否存在源码修改;当所述工作模块存在源码修改时,则赋予所述工作模块表征为修改源码的修改状态,若不存在,则赋予所述工作模块表征为未修改源码的修改状态。3.根据权利要求1所述的方法,其特征在于,所述根据各所述工作模块的修改状态,将修改源码的所述工作模块确定为源码编译模块,将未修改源码的所述工作模块确定为预编译模块的步骤中,包括如下步骤:解析各所述工作模块的修改状态,当任意工作模块的修改状态表征为修改源码时,赋予该工作模块表征为源码依赖的依赖标识,以将该工作模块确定为源码编译模块;当任意工作模块的修改状态表征为未修改源码时,赋予该工作模块表征为预编译产物依赖的依赖标识,以将该工作模块确定为预编译模块。4.根据权利要求1所述的方法,其特征在于,所述从远程模块库中获取各所述预编译模块相应的预编译产物的步骤中,包括如下步骤:解析所述预编译模块的模块特征信息,获取该模块特征信息中包含的模块组名称及模块名称;查询出分布中心中所述项目工程相对应的远程模块库中具有所述模块组名的模块组,以在该模块组中查询出具有所述模块名称的模块具有预编译产物;所述远程模块库中获取所述预编译产物,并将该预编译产物对应存储至本地模块库中。5.根据权利要求4所述的方法,其特征在于,所述以根据各所述预编译产物对应编译各所述预编译模块,且基于各所述源码编译模块的修改源...

【专利技术属性】
技术研发人员:李勇
申请(专利权)人:广州方硅信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1