Java程序增量编译方法及相关装置制造方法及图纸

技术编号:37809125 阅读:20 留言:0更新日期:2023-06-09 09:39
本发明专利技术实施例涉及软件开发技术领域,公开了一种Java程序增量编译方法,该方法包括:获取当前提交的项目代码;根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包;将所述当前代码包发送至服务器。通过上述方式,本发明专利技术实施例实现了有效提高编译效率的效果。了有效提高编译效率的效果。了有效提高编译效率的效果。

【技术实现步骤摘要】
Java程序增量编译方法及相关装置


[0001]本专利技术实施例涉及软件开发
,具体涉及一种Java程序增量编译方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]目前,Java项目在Jenkins持续集成中,编译的时候通常会拉取整个项目使用Maven Build命令进行打包。而该命令基于pom.xml文件的配置从maven仓库中拉取项目所依赖代码包,并且将项目中的每个文件都编译成class文件。如果项目比较大,那么整个编译过程将会耗费较长时间,达到分钟级别。当项目团队较大,开发人员较多的时候,每次提交代码都会触发Jenkins持续集成的全量编译部署,因而会在编译项目中浪费大量时间。

技术实现思路

[0003]鉴于上述问题,本专利技术实施例提供了一种Java程序增量编译方法、装置、设备及计算机可读存储介质,用于解决现有技术中存在的编译效率低的技术问题。
[0004]根据本专利技术实施例的一个方面,提供了一种Java程序增量编译方法,所述方法包括:
[0005]获取当前提交的项目代码;
[0006]根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包;
[0007]将所述当前代码包发送至服务器。
[0008]在一种可选的方式中,所述根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包,包括:
[0009]确定所述当前提交的项目代码中是否包含对pomxml文件的修改信息;
>[0010]若存在所述修改信息,则根据所述修改信息及上次编译生成的代码包文件,进行增量编译,生成当前代码包。
[0011]在一种可选的方式中,所述确定所述当前提交的项目代码中是否包含对pomxml文件的修改信息之后,包括:
[0012]若不存在所述修改信息,检查服务器是否存在所述上次编译生成的代码包文件;
[0013]若存在,则编译所述当前提交的项目代码中的java文件,得到编译后的java文件;
[0014]获取所述编译后的java文件中相对于与所述上次编译生成的代码包文件中变化的java文件,将所述变化的java文件逐个编译成对应的类文件;
[0015]将编译后的类文件替换所述所述上次编译生成的代码包文件中对应的java文件,以生成当前代码包。
[0016]在一种可选的方式中,所述若不存在所述修改信息,检查服务器是否存在所述上次编译生成的代码包文件之后,包括:
[0017]若所述服务器不存在所述上次编译生成的代码包文件,则调用Maven Build全量
编译整个项目为当前代码包,所述项目为当前提交的项目代码所对应的项目。
[0018]在一种可选的方式中,所述若存在所述修改信息,则根据所述修改信息及上次编译生成的代码包文件,进行增量编译,生成当前代码包,包括:
[0019]若存在所述修改信息,则分析所述pomxml文件是修改状态还是新增状态;
[0020]若所述pomxml文件为修改状态,则根据上次编译生成的代码包文件确认所述pomxml文件中是否包含插件的变化;
[0021]若不包含插件的变化,则分析所述pomxml文件中是否包含有依赖的变化;
[0022]若所述pomxml文件中包含有依赖的变化,则从仓库中下载对应的代码包,替换所述上次编译生成的代码包文件中类文件路径下代码包;
[0023]在所述类文件路径的基础上,编译提交修改的java文件为目标class文件,替换所述上次编译生成的代码包文件中的class文件,以生成当前代码包。
[0024]在一种可选的方式中,所述若存在所述修改信息,则分析所述pomxml文件是修改状态还是新增状态,包括:
[0025]若所述pomxml文件为新增状态,则调用Maven Build全量编译整个项目为当前代码包,所述项目为当前提交的项目代码所对应的项目。
[0026]在一种可选的方式中,所述若所述pomxml文件为修改状态,则根据上次编译生成的代码包文件确认所述pomxml文件中是否包含插件的变化之后,包括:
[0027]若包含插件的变化,则调用Maven Build全量编译整个项目为当前代码包,所述项目为当前提交的项目代码所对应的项目。
[0028]根据本专利技术实施例的另一方面,提供了一种Java程序增量编译装置,包括:
[0029]获取模块,用于获取当前提交的项目代码;
[0030]编译模块,用于根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包;
[0031]发送模块,用于将所述当前代码包发送至服务器。
[0032]根据本专利技术实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0033]所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行所述的Java程序增量编译方法的操作。
[0034]根据本专利技术实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算设备上运行时,使得计算设备执行所述的Java程序增量编译方法的操作。
[0035]本专利技术实施例通过获取当前提交的项目代码,根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包,将所述当前代码包发送至服务器,能够有效提高编译效率,提高了开发效率。
[0036]上述说明仅是本专利技术实施例技术方案的概述,为了能够更清楚了解本专利技术实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0037]附图仅用于示出实施方式,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0038]图1示出了现有方案中Java程序增量编译方法的流程示意图;
[0039]图2示出了本专利技术实施例提供的Java程序增量编译方法的流程示意图;
[0040]图3示出了本专利技术另一实施例提供的Java程序增量编译方法的流程示意图;
[0041]图4示出了本专利技术实施例提供的Java程序增量编译装置的结构示意图;
[0042]图5示出了本专利技术实施例提供的计算设备的结构示意图。
具体实施方式
[0043]下面将参照附图更详细地描述本专利技术的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。
[0044]首先,对本申请中的部分技术名称进行解释。
[0045]代码管理平台Git:是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是Linus To本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种Java程序增量编译方法,其特征在于,所述方法包括:获取当前提交的项目代码;根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包;将所述当前代码包发送至服务器。2.根据权利要求1所述的方法,其特征在于,所述根据上次编译生成的代码包文件以及所述当前提交的项目代码,进行增量编译,生成当前代码包,包括:确定所述当前提交的项目代码中是否包含对pomxml文件的修改信息;若存在所述修改信息,则根据所述修改信息及上次编译生成的代码包文件,进行增量编译,生成当前代码包。3.根据权利要求2所述的方法,其特征在于,所述确定所述当前提交的项目代码中是否包含对pomxml文件的修改信息之后,包括:若不存在所述修改信息,检查服务器是否存在所述上次编译生成的代码包文件;若存在,则编译所述当前提交的项目代码中的java文件,得到编译后的java文件;获取所述编译后的java文件中相对于与所述上次编译生成的代码包文件中变化的java文件,将所述变化的java文件逐个编译成对应的类文件;将编译后的类文件替换所述所述上次编译生成的代码包文件中对应的java文件,以生成当前代码包。4.根据权利要求3所述的方法,其特征在于,所述若不存在所述修改信息,检查服务器是否存在所述上次编译生成的代码包文件之后,包括:若所述服务器不存在所述上次编译生成的代码包文件,则调用Maven Build全量编译整个项目为当前代码包,所述项目为当前提交的项目代码所对应的项目。5.根据权利要求2所述的方法,其特征在于,所述若存在所述修改信息,则根据所述修改信息及上次编译生成的代码包文件,进行增量编译,生成当前代码包,包括:若存在所述修改信息,则分析所述pomxml文件是修改状态还是新增状态;若所述pomxml文件为修改状态,则根据上次编译生成的代码包文件确认所述pomxml文件中是否包含插件的变化;若不包含插件的变化,则分析所述p...

【专利技术属性】
技术研发人员:白海婷温小清
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1