System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及计算机,尤其涉及一种项目编译处理方法、装置、设备、存储介质及程序产品。
技术介绍
1、目前,在项目开发过程中,语法简洁的开发语言逐渐成为国内外项目开发的主流语言。例如,在android项目开发中,对于同样基于jvm的静态类型的kotlin语言和java语言,kotlin语言的语法更为简洁,但是在面对大型的android项目的情况下,相比于java语言,kotlin语言的编译效率相对较低。由此各类项目开发语言的官方提供可增量编译的解决方案,可以在资源变动不涉及关联代码引用的场景下实现仅重新编译发生更改的代码部分,一定程度上解决大型的开发项目出现编译耗时较长的问题。
2、然而,当涉及到资源变动需要关联代码引用时,前述解决方案无法支持增量编译,程序项目中任意功能模块的资源变动,会引起代码引用部分的相应修改,会触发全量编译,导致项目编译耗时过长,影响程序项目开发的编译效率。
技术实现思路
1、本申请实施例提供了一种项目编译处理方法、装置、设备、存储介质及程序产品,解决了涉及到资源相关需要关联代码引用时无法支持增量编译,造成项目编译耗时过长,影响项目开发的编译效率的问题,该方案通过将资源配置文件中的当前的资源标识进行固定,可以对已经编译引用过且未发生变化的资源标识进行提前锁定,便于针对该资源变动进行资源标识的增量生成,减少该资源配置文件的资源标识改动,避免因已有资源标识关联的代码引用引起全量编译,有利于针对该资源变动进行增量编译,通过向当前编译流程注入第一中间任务
2、第一方面,本申请实施例提供了一种项目编译处理方法,该方法包括:
3、在项目的功能模块发生资源变动的情况下,将所述功能模块当前对应的资源配置文件中的资源标识进行固定,基于所述资源变动进行资源标识的增量变更得到第一类型文件,所述第一类型文件为编译流程中无法识别增量变更的中间文件;
4、通过预先注入编译流程的第一中间任务,对所述第一类型文件进行解析得到第二类型文件,所述第二类型文件为可识别增量变更的中间文件;
5、基于所述第二类型文件进行所述资源变动的增量编译。
6、第二方面,本申请实施例还提供了一种项目编译处理装置,该装置包括:
7、标识增量变更模块,配置为在项目的功能模块发生资源变动的情况下,将所述功能模块当前对应的资源配置文件中的资源标识进行固定,基于所述资源变动进行资源标识的增量变更得到第一类型文件,所述第一类型文件为编译流程中无法识别增量变更的中间文件;
8、文件类型转换模块,配置为通过预先注入编译流程的第一中间任务,对所述第一类型文件进行解析得到第二类型文件,所述第二类型文件为可识别增量变更的中间文件;
9、增量编译模块,配置为基于所述第二类型文件进行所述资源变动的增量编译。
10、第三方面,本申请实施例还提供了一种项目编译处理设备,该设备包括:
11、一个或多个处理器;
12、存储装置,配置为存储一个或多个程序,
13、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请实施例所述的项目编译处理方法。
14、第四方面,本申请实施例还提供了一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时配置为执行本申请实施例所述的项目编译处理方法。
15、第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行本申请实施例所述的项目编译处理方法。
16、本申请实施例中,通过在项目的功能模块发生资源变动的情况下,将功能模块当前对应的资源配置文件中的资源标识进行固定,基于资源变动进行资源标识的增量变更得到第一类型文件,第一类型文件为编译流程中无法识别增量变更的中间文件;通过预先注入编译流程的第一中间任务,对第一类型文件进行解析得到第二类型文件,第二类型文件为可识别增量变更的中间文件;基于第二类型文件进行资源变动的增量编译。上述方案中,通过将资源配置文件中的当前的资源标识进行固定,可以对已经编译引用过且未发生变化的资源标识进行提前锁定,便于针对该资源变动进行资源标识的增量生成,减少该资源配置文件的资源标识改动,避免因已有资源标识关联的代码引用引起全量编译,有利于针对该资源变动进行增量编译,通过向当前编译流程注入第一中间任务,可以将原有流程生成的第一类型文件进行解析得到增量变更可被识别的第二类型文件,因而针对该资源变动的增量变更可以被后续的编译任务识别,确保有效进行增量编译处理,提高项目开发的编译效率。
本文档来自技高网...【技术保护点】
1.一种项目编译处理方法,其特征在于,包括:
2.根据权利要求1所述的项目编译处理方法,其特征在于,在所述通过预先注入所述当前编译流程的第一中间任务,对所述第一类型文件进行解析得到第二类型文件之前,还包括:
3.根据权利要求1所述的项目编译处理方法,其特征在于,在所述对所述第一类型文件进行解析得到第二类型文件之后,还包括:
4.根据权利要求1所述的项目编译处理方法,其特征在于,所述编译流程设置有全局开关变量,所述将所述功能模块当前对应的资源配置文件中的资源标识进行固定,包括:
5.根据权利要求4所述的项目编译处理方法,其特征在于,还包括:在基于所述全局开关变量确定所述编译流程进行非优化编译的情况下,基于所述资源变动进行资源标识的非增量变更,基于所述非增量变更得到的文件进行全量编译。
6.根据权利要求1-5中任一项所述的项目编译处理方法,其特征在于,在所述将所述功能模块当前对应的资源配置文件中的资源标识进行固定之前,还包括:
7.根据权利要求1-5中任一项所述的项目编译处理方法,其特征在于,所述基于所述资源变动
8.一种项目编译处理装置,其特征在于,包括:
9.一种项目编译处理设备,所述设备包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1-7中任一项所述的项目编译处理方法。
10.一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时配置为执行权利要求1-7中任一项所述的项目编译处理方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的项目编译处理方法。
...【技术特征摘要】
1.一种项目编译处理方法,其特征在于,包括:
2.根据权利要求1所述的项目编译处理方法,其特征在于,在所述通过预先注入所述当前编译流程的第一中间任务,对所述第一类型文件进行解析得到第二类型文件之前,还包括:
3.根据权利要求1所述的项目编译处理方法,其特征在于,在所述对所述第一类型文件进行解析得到第二类型文件之后,还包括:
4.根据权利要求1所述的项目编译处理方法,其特征在于,所述编译流程设置有全局开关变量,所述将所述功能模块当前对应的资源配置文件中的资源标识进行固定,包括:
5.根据权利要求4所述的项目编译处理方法,其特征在于,还包括:在基于所述全局开关变量确定所述编译流程进行非优化编译的情况下,基于所述资源变动进行资源标识的非增量变更,基于所述非增量变更得到的文件进行全量编译。
6.根据权利要求1-5中任一项所述的项目编译处理方法,其特...
【专利技术属性】
技术研发人员:段逢源,
申请(专利权)人:广州安思创信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。