【技术实现步骤摘要】
一种增量编译处理方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种增量编译处理方法及装置。
技术介绍
随着开发运维一体化(DevelopmentOperations,DevOps)实践日趋成熟,持续交付在企业中大量应用。持续交付是指通过流水线的对代码进行编译、打包、部署,并获取用户反馈改进该过程,自动化编译是整个持续交付流水线的基础,因此,编译结果的准确性越来越受到关注。目前流水线主流的编译方式有三种,全量编译、增量编译和人工编译针对一些历史存留的巨石系统,工程代码庞大,模块之间耦合严重,层级关系复杂,若采用全量编译,则耗时过长(持续交付要求整个流水线在5-10分钟内完成,而巨石应用全量编译往往超过30分钟),无法达到持续交付的要求;若采用增量编译,则基于Java语言本身编译的特点,如果是删除Java文件或修改静态常量,引用该内容的其他Java文件不会被重新编译,且引用该内容的Class文件不会发生变化,而运行时该部分Class文件仍可能被加载,从而导致逻辑错误;若采用人工编译,虽然加快编译发布的速度,但是DevOps工程师采用文件替换的方式进行人工编译 ...
【技术保护点】
1.一种增量编译处理方法,其特征在于,包括:获取初始编译清单;所述初始编译清单包括删除Java文件的文件名称和/或变更Java文件的文件名称;根据所述初始编译清单,获取风险文件清单;所述风险文件清单包括所述删除Java文件的文件名称,和/或包括静态常量的变更Java文件的文件名称;根据所述初始编译清单、所述风险文件清单和引用关系缓存列表,获取增量编译清单;根据所述增量编译清单,进行增量编译处理。
【技术特征摘要】
1.一种增量编译处理方法,其特征在于,包括:获取初始编译清单;所述初始编译清单包括删除Java文件的文件名称和/或变更Java文件的文件名称;根据所述初始编译清单,获取风险文件清单;所述风险文件清单包括所述删除Java文件的文件名称,和/或包括静态常量的变更Java文件的文件名称;根据所述初始编译清单、所述风险文件清单和引用关系缓存列表,获取增量编译清单;根据所述增量编译清单,进行增量编译处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述增量编译清单,进行增量编译处理,包括:根据所述增量编译清单获取目标Java文件;对所述目标Java文件进行增量编译,获得目标Class文件,并将所述目标Class文件进行打包,生成目标Jar包。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述目标Java文件,获取所述目标Java文件对应的目标引用Java文件,并根据所述目标Java文件和所述目标引用Java文件,对所述引用关系缓存列表进行更新;其中,所述目标引用Java文件为引用所述目标Java文件的Java文件;根据所述目标Class文件,获取所述目标Class文件对应的目标静态常量,并根据所述目标静态常量对所述静态常量缓存列表进行更新;所述目标静态常量为所述目标Class文件包括的静态常量。4.根据权利要求1所述的方法,其特征在于,所述初始编译清单包括初始Java文件的文件名称;相应地,所述根据所述初始编译清单,获取风险文件清单,包括:根据所述初始Java文件的文件名称,获取所述初始Java文件的文件操作类型;根据所述初始Java文件的文件操作类型,若判断获知所述初始Java文件仅包括所述删除Java文件,则将所述删除Java文件作为风险文件;根据所述初始Java文件的文件操作类型,若判断获知所述初始Java文件仅包括所述变更Java文件,则根据所述变更Java文件的文件名称和静态常量缓存列表,获取包括静态常量的变更Java文件作为所述风险文件;根据所述初始Java文件的文件操作类型,若判断获知所述初始Java文件包括所述删除Java文件和所述变更Java文件,则根据所述变更Java文件的文件名称和静态常量缓存列表,获取包括静态常量的变更Java文件,并将所述包括静态常量的...
【专利技术属性】
技术研发人员:郑海朋,方炜,李海传,罗琼,施帆,陈润泉,刘兆祥,
申请(专利权)人:中国移动通信集团浙江有限公司,中国移动通信集团公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。