一种代码增量编译方法技术

技术编号:39652876 阅读:8 留言:0更新日期:2023-12-09 11:21
本发明专利技术涉及工程项目开发技术领域,公开了一种代码增量编译方法

【技术实现步骤摘要】
一种代码增量编译方法、装置、计算机设备及存储介质


[0001]本专利技术涉及工程项目开发
,具体涉及一种代码增量编译方法

装置

计算机设备及存储介质


技术介绍

[0002]在
java
工程项目开发过程中,编写的工程项目源代码想要最终在服务器上运行,需要经历以下几个步骤:代码编写

编译打包

测试

运行

对于复杂的
java
工程项目,开发人员想要验证编写的源代码是否符合需要,需要将编写的源代码进行编译打包后,在服务器之上进行验证

一个较大的工程项目,编译打包的过程需要耗费较多时间

[0003]当前,开发人员在修改了部分代码之后,会使用常用的打包工具
maven
重新对整个工程项目的源代码进行编译打包,并不只限于局部修改及其相关部分,这种编译方式称为全量编译


java
工程项目开发过程中,尤其是在调试期,可能需要对工程项目的源代码进行多次调试与修改

上述方式每次编译涉及全部源代码,编译时间长

效率低,不利于对工程项目的源代码进行调试与修改,会降低工程项目的开发效率

[0004]因此,现有技术存在每次编译涉及全部源代码,编译时间长

效率低,不利于对工程项目的源代码进行调试与修改的问


技术实现思路

[0005]有鉴于此,本专利技术提供了一种代码增量编译方法

装置

计算机设备及存储介质,以解决每次编译涉及全部源代码,编译时间长

效率低,不利于对工程项目的源代码进行调试与修改的问题

[0006]第一方面,本专利技术提供了一种代码增量编译方法,该方法包括:
[0007]扫描整个工程项目,确定修改代码和修改代码所在的第一模块,其中,工程项目包含第一数量个模块,模块之间包括依赖关系;
[0008]根据依赖关系,确定不依赖第一模块的第二模块,并获取第二模块的第一编译信息文件,其中,第一编译信息文件是由上一次编译生成的;
[0009]根据依赖关系,确定依赖第一模块的第三模块,并对第一模块和第三模块中的代码进行重新编译,得到第二编译信息文件;
[0010]将第一编译信息文件和第二编译信息文件进行组合,得到目标编译信息文件

[0011]本实施例提供的代码增量编译方法,扫描整个工程项目,确定修改代码和修改代码所在的第一模块;根据依赖关系,确定不依赖第一模块的第二模块,直接获取第二模块的第一编译信息文件;根据依赖关系,确定依赖第一模块的第三模块,对第一模块和第三模块重新编译,得到第二编译信息文件,进而得到工程项目的目标编译信息文件

通过上述方法,开发人员对代码修改之后,通过只对修改部分及与之相关的代码进行重新编译,可在较短的时间内获取到目标编译信息文件,相较于现有技术的全量编译,本方法降低了编译打包所需要的时间,提高研发效率

解决了现有技术存在每次编译涉及全部源代码,编译时间


效率低,不利于对工程项目的源代码进行调试与修改的问题

[0012]在一种可选的实施方式中,在扫描整个工程项目,确定修改代码和修改代码所在的第一模块之前,方法还包括:
[0013]确定工程项目包含的第一数量个模块并确定模块之间的依赖关系,其中,模块包含第二数量个代码文件,依赖关系用于确定编译顺序;
[0014]根据依赖关系,对模块进行排序,得到排列顺序,其中,排列顺序能够表征依赖关系;
[0015]根据排列顺序,依次对每个模块中的代码文件进行编译,得到每个模块的编译信息,并确定模块中每个代码文件的修改时间属性;
[0016]将编译信息保存在每个模块的编译信息文件中,并保存编译信息文件,其中,编译信息文件包括第一编译信息文件;
[0017]根据修改时间属性,生成每个代码文件的时间记录文件,并将所有时间记录文件进行保存,其中,时间记录文件用于确定修改代码

[0018]在本实施方式中,通过排列顺序表征依赖关系,便于后续确定第一模块和第二模块

在对
java
工程项目进行首次编译的过程中,对每个模块中的代码文件进行编译,并保存包含编译信息的编译信息文件,便于后续直接调取

同时,生成每个代码文件的的时间记录文件,便于后续通过对比修改时间确定修改代码和第一模块

[0019]在一种可选的实施方式中,扫描整个工程项目,确定修改代码和修改代码所在的第一模块,包括:
[0020]获取工程项目中所有代码文件的当前修改时间;
[0021]将当前修改时间与时间记录文件中的修改时间属性进行对比,确定修改代码文件,其中,修改代码文件包含修改代码;
[0022]将包含修改代码文件的模块作为第一模块

[0023]在本实施方式中,通过将当前修改时间与的修改时间属性进行对比,确定修改代码文件,方法简单有效,计算开销小,降低了编译打包所需要的时间,提高研发效率

[0024]在一种可选的实施方式中,在得到第二编译信息文件之后,方法还包括:
[0025]将第一模块对应的第二编译信息文件,作为第一模块的编译信息文件;
[0026]将第三模块对应的第二编译信息文件,作为第三模块的编译信息文件

[0027]在本实施方式中,利用第二编译信息文件覆盖第一模块和第三模块之前的编译信息文件,以便在下一次增量编译时使用,提高了本专利技术编译的准确率

[0028]在一种可选的实施方式中,在扫描整个工程项目,确定修改代码和修改代码所在的第一模块之后,方法还包括:
[0029]根据当前修改时间更新修改时间文件中记录的修改时间属性

[0030]在本实施方式中,利用当前修改时间更新时间记录文件,便于后续再次通过修改时间的对比确定修改代码和第一模块

[0031]在一种可选的实施方式中,根据依赖关系,确定不依赖第一模块的第二模块,并获取第二模块的第一编译信息文件,包括:
[0032]根据排列顺序,确定第一模块之前的模块,并将第一模块之前的模块作为第二模块;
[0033]获取第二模块的编译信息文件,并将第二模块的编译信息文件作为第一编译信息文件

[0034]在本实施方式中,将排列顺序中第一模块之前的模块作为第二模块,简单易行;并直接获取第二模块的编译信息文件作为第一编译信息文件,避免对第二模块进行重复编译

解决了现有技术存在每次编译涉及全部源代码,编译时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种代码增量编译方法,其特征在于,所述方法包括:扫描整个工程项目,确定修改代码和所述修改代码所在的第一模块,其中,所述工程项目包含第一数量个模块,所述模块之间包括依赖关系;根据所述依赖关系,确定不依赖所述第一模块的第二模块,并获取所述第二模块的第一编译信息文件,其中,所述第一编译信息文件是由上一次编译生成的;根据所述依赖关系,确定依赖所述第一模块的第三模块,并对所述第一模块和所述第三模块中的代码进行重新编译,得到第二编译信息文件;将所述第一编译信息文件和所述第二编译信息文件进行组合,得到目标编译信息文件
。2.
根据权利要求1所述的方法,其特征在于,在所述扫描整个工程项目,确定修改代码和所述修改代码所在的第一模块之前,所述方法还包括:确定所述工程项目包含的第一数量个所述模块并确定所述模块之间的所述依赖关系,其中,所述模块包含第二数量个代码文件,所述依赖关系用于确定编译顺序;根据所述依赖关系,对所述模块进行排序,得到排列顺序,其中,所述排列顺序能够表征所述依赖关系;根据所述排列顺序,依次对每个所述模块中的所述代码文件进行编译,得到每个所述模块的编译信息,并确定所述模块中每个所述代码文件的修改时间属性;将所述编译信息保存在每个所述模块的编译信息文件中,并保存所述编译信息文件,其中,所述编译信息文件包括所述第一编译信息文件;根据所述修改时间属性,生成每个所述代码文件的时间记录文件,并将所有所述时间记录文件进行保存,其中,所述时间记录文件用于确定所述修改代码
。3.
根据权利要求2所述的方法,其特征在于,所述扫描整个工程项目,确定修改代码和所述修改代码所在的第一模块,包括:获取工程项目中所有所述代码文件的当前修改时间;将所述当前修改时间与所述时间记录文件中的所述修改时间属性进行对比,确定修改代码文件,其中,所述修改代码文件包含所述修改代码;将包含所述修改代码文件的所述模块作为所述第一模块
。4.
根据权利要求2所述的方法,其特征在于,在所述得到第二编译信息文件之后,所述方法还包括:将所述第一模块对应的所述第二编译信息文件,作为所述第一模块的所述编译信息文件;将所述第三模块对应的所述第二编译信息文件,作为所述第三模块的所述编译信息文件
。5.
根据权利要求3所述的方法,其特征在于,在所述扫描整个工程...

【专利技术属性】
技术研发人员:李航
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1