一种代码增量编译方法、装置、计算机设备及存储介质与流程

文档序号:36281783发布日期:2023-12-06 23:24阅读:23来源:国知局
一种代码增量编译方法与流程

本发明涉及工程项目开发,具体涉及一种代码增量编译方法、装置、计算机设备及存储介质。


背景技术:

1、在java工程项目开发过程中,编写的工程项目源代码想要最终在服务器上运行,需要经历以下几个步骤:代码编写、编译打包、测试、运行。对于复杂的java工程项目,开发人员想要验证编写的源代码是否符合需要,需要将编写的源代码进行编译打包后,在服务器之上进行验证。一个较大的工程项目,编译打包的过程需要耗费较多时间。

2、当前,开发人员在修改了部分代码之后,会使用常用的打包工具maven重新对整个工程项目的源代码进行编译打包,并不只限于局部修改及其相关部分,这种编译方式称为全量编译。在java工程项目开发过程中,尤其是在调试期,可能需要对工程项目的源代码进行多次调试与修改。上述方式每次编译涉及全部源代码,编译时间长、效率低,不利于对工程项目的源代码进行调试与修改,会降低工程项目的开发效率。

3、因此,现有技术存在每次编译涉及全部源代码,编译时间长、效率低,不利于对工程项目的源代码进行调试与修改的问题。


技术实现思路

1、有鉴于此,本发明提供了一种代码增量编译方法、装置、计算机设备及存储介质,以解决每次编译涉及全部源代码,编译时间长、效率低,不利于对工程项目的源代码进行调试与修改的问题。

2、第一方面,本发明提供了一种代码增量编译方法,该方法包括:

3、扫描整个工程项目,确定修改代码和修改代码所在的第一模块,其中,工程项目包含第一数量个模块,模块之间包括依赖关系;

4、根据依赖关系,确定不依赖第一模块的第二模块,并获取第二模块的第一编译信息文件,其中,第一编译信息文件是由上一次编译生成的;

5、根据依赖关系,确定依赖第一模块的第三模块,并对第一模块和第三模块中的代码进行重新编译,得到第二编译信息文件;

6、将第一编译信息文件和第二编译信息文件进行组合,得到目标编译信息文件。

7、本实施例提供的代码增量编译方法,扫描整个工程项目,确定修改代码和修改代码所在的第一模块;根据依赖关系,确定不依赖第一模块的第二模块,直接获取第二模块的第一编译信息文件;根据依赖关系,确定依赖第一模块的第三模块,对第一模块和第三模块重新编译,得到第二编译信息文件,进而得到工程项目的目标编译信息文件。通过上述方法,开发人员对代码修改之后,通过只对修改部分及与之相关的代码进行重新编译,可在较短的时间内获取到目标编译信息文件,相较于现有技术的全量编译,本方法降低了编译打包所需要的时间,提高研发效率。解决了现有技术存在每次编译涉及全部源代码,编译时间长、效率低,不利于对工程项目的源代码进行调试与修改的问题。

8、在一种可选的实施方式中,在扫描整个工程项目,确定修改代码和修改代码所在的第一模块之前,方法还包括:

9、确定工程项目包含的第一数量个模块并确定模块之间的依赖关系,其中,模块包含第二数量个代码文件,依赖关系用于确定编译顺序;

10、根据依赖关系,对模块进行排序,得到排列顺序,其中,排列顺序能够表征依赖关系;

11、根据排列顺序,依次对每个模块中的代码文件进行编译,得到每个模块的编译信息,并确定模块中每个代码文件的修改时间属性;

12、将编译信息保存在每个模块的编译信息文件中,并保存编译信息文件,其中,编译信息文件包括第一编译信息文件;

13、根据修改时间属性,生成每个代码文件的时间记录文件,并将所有时间记录文件进行保存,其中,时间记录文件用于确定修改代码。

14、在本实施方式中,通过排列顺序表征依赖关系,便于后续确定第一模块和第二模块。在对java工程项目进行首次编译的过程中,对每个模块中的代码文件进行编译,并保存包含编译信息的编译信息文件,便于后续直接调取。同时,生成每个代码文件的的时间记录文件,便于后续通过对比修改时间确定修改代码和第一模块。

15、在一种可选的实施方式中,扫描整个工程项目,确定修改代码和修改代码所在的第一模块,包括:

16、获取工程项目中所有代码文件的当前修改时间;

17、将当前修改时间与时间记录文件中的修改时间属性进行对比,确定修改代码文件,其中,修改代码文件包含修改代码;

18、将包含修改代码文件的模块作为第一模块。

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

20、在一种可选的实施方式中,在得到第二编译信息文件之后,方法还包括:

21、将第一模块对应的第二编译信息文件,作为第一模块的编译信息文件;

22、将第三模块对应的第二编译信息文件,作为第三模块的编译信息文件。

23、在本实施方式中,利用第二编译信息文件覆盖第一模块和第三模块之前的编译信息文件,以便在下一次增量编译时使用,提高了本发明编译的准确率。

24、在一种可选的实施方式中,在扫描整个工程项目,确定修改代码和修改代码所在的第一模块之后,方法还包括:

25、根据当前修改时间更新修改时间文件中记录的修改时间属性。

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

27、在一种可选的实施方式中,根据依赖关系,确定不依赖第一模块的第二模块,并获取第二模块的第一编译信息文件,包括:

28、根据排列顺序,确定第一模块之前的模块,并将第一模块之前的模块作为第二模块;

29、获取第二模块的编译信息文件,并将第二模块的编译信息文件作为第一编译信息文件。

30、在本实施方式中,将排列顺序中第一模块之前的模块作为第二模块,简单易行;并直接获取第二模块的编译信息文件作为第一编译信息文件,避免对第二模块进行重复编译。解决了现有技术存在每次编译涉及全部源代码,编译时间长、效率低,不利于对工程项目的源代码进行调试与修改的问题。

31、在一种可选的实施方式中,根据依赖关系,确定依赖第一模块的第三模块,并对第一模块和第三模块中的代码进行重新编译,得到第二编译信息文件,包括:

32、根据排列顺序,确定第一模块之后的模块,并将第一模块之后的模块作为第三模块;

33、读取第一模块和第三模块中的当前代码文件,并对当前代码文件进行编译,得到第一模块和第三模块的当前编译信息;

34、根据当前编译信息,得到第二编译信息文件。

35、在本实施方式中,将排列顺序中第一模块之后的模块作为第三模块,简单易行;并对第一模块和第三模块进行重新编译,避免修改代码可能造成的影响,使得本发明得到的第二编译信息文件更精准。

36、第二方面,本发明提供了一种代码增量编译装置,该装置包括:

37、第一确定模块,用于扫描整个工程项目,确定修改代码和修改代码所在的第一模块,其中,工程项目包含第一数量个模块,模块之间包括依赖关系;

38、获取模块,用于根据依赖关系,确定不依赖第一模块的第二模块,并获取第二模块的第一编译信息文件,其中,第一编译信息文件是由上一次编译生成的;

39、第一编译模块,用于根据依赖关系,确定依赖第一模块的第三模块,并对第一模块和第三模块中的代码进行重新编译,得到第二编译信息文件;

40、组合模块,用于将第一编译信息文件和第二编译信息文件进行组合,得到目标编译信息文件。

41、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的代码增量编译方法。

42、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的代码增量编译方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1