System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机应用,涉及但不限于一种可执行文件的生成方法、装置、电子设备及计算机可读存储介质。
技术介绍
1、随着科技的发展和人们对生活质量要求的提高,移动互联网、云计算、大数据、人工智能等新兴技术不断涌现,对应用程序(application,app)的功能稳定性、及时性、可靠性、安全性等都提出了更高的要求。
2、对于业务较多的企业,其app的体量一般都比较大,每个版本都有大量的需求。相关技术中app版本升级时,面临大量待集成的需求,若在多个本地端并行合并,存在代码冲突的缺陷,若集中在服务端串行合并,存在排队和编译时间过长的问题。
技术实现思路
1、有鉴于此,本申请实施例提供一种可执行文件的生成方法、装置、电子设备及计算机可读存储介质,能够在确保代码不冲突的前提下实现缩短合并等待时长和编译时长的效果。
2、本申请实施例的技术方案是这样实现的:
3、本申请实施例提供一种可执行文件的生成方法,所述方法包括:
4、根据获取到的多个需求,确定修改组件集和与所述修改组件集关联的关联组件集,所述关联组件集中各关联组件为依赖所述修改组件集中至少一个修改组件的未修改组件;
5、获取所述修改组件集中各修改组件对应的源码和所述关联组件集中各关联组件对应的静态库;
6、对所述各修改组件对应的源码进行编译,得到目标代码;
7、根据所述目标代码和所述各关联组件对应的静态库,生成可执行文件。
8、在一些实施例中,
9、根据获取到的多个需求,确定各需求修改的组件,组成各需求对应的修改组件子集;
10、根据所述各需求对应的修改组件子集,确定所述修改组件集;
11、获取组件依赖关系表;
12、根据所述组件依赖关系表和所述修改组件集,确定所述关联组件集。
13、在一些实施例中,所述根据所述组件依赖关系表和所述修改组件集,确定所述关联组件集,包括:
14、根据所述组件依赖关系表,确定所述修改组件集中各修改组件对应的关联组件子集,一个修改组件对应的关联组件子集包括依赖所述一个修改组件的所有未修改组件;
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、第一确定子模块,用于根据获取到的多个需求,确定各需求修改的组件,组成各需求对应的修改组件子集;
43、第二确定子模块,用于根据所述各需求对应的修改组件子集,确定所述修改组件集;
44、获取子模块,用于获取组件依赖关系表;
45、第三确定子模块,用于根据所述组件依赖关系表和所述修改组件集,确定所述关联组件集。
46、在一些实施例中,所述第三确定子模块,包括:
47、第一确定单元,用于根据所述组件依赖关系表,确定所述修改组件集中各修改组件对应的关联组件子集,一个修改组件对应的关联组件子集包括依赖所述一个修改组件的所有未修改组件;
48、第二确定单元,用于根据所述修改组件集中各修改组件对应的关联组件子集,确定所述关联组件集。
49、在一些实施例中,所述编译模块,包括:
50、分类子模块,用于对获取到的多个需求进行分类,得到单一需求集和混合需求集;
本文档来自技高网...【技术保护点】
1.一种可执行文件的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据获取到的多个需求,确定修改组件集和与所述修改组件集关联的关联组件集,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述组件依赖关系表和所述修改组件集,确定所述关联组件集,包括:
4.根据权利要求1所述的方法,其特征在于,所述对所述各修改组件对应的源码进行编译,得到目标代码,包括:
5.根据权利要求4所述的方法,其特征在于,所述对获取到的多个需求进行分类,得到单一需求集和混合需求集,包括:
6.根据权利要求4所述的方法,其特征在于,所述对所述单一需求集中各单一需求对应的第一源码进行编译,并对所述混合需求集中各混合需求对应的第二源码进行编译,得到目标代码,包括:
7.根据权利要求6所述的方法,其特征在于,所述对所述多个单一需求子集对应的第一源码进行并行编译,对所述多个混合需求子集对应的第二源码进行串行编译,得到目标代码,包括:
8.根据权利要求7所述的方法,其特征在于,所述对所述多个预合并的
9.一种可执行文件的生成装置,其特征在于,包括:
10.一种电子设备,其特征在于,包括:
11.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令配置为执行权利要求1至8任一项所述可执行文件的生成方法的步骤。
...【技术特征摘要】
1.一种可执行文件的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据获取到的多个需求,确定修改组件集和与所述修改组件集关联的关联组件集,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述组件依赖关系表和所述修改组件集,确定所述关联组件集,包括:
4.根据权利要求1所述的方法,其特征在于,所述对所述各修改组件对应的源码进行编译,得到目标代码,包括:
5.根据权利要求4所述的方法,其特征在于,所述对获取到的多个需求进行分类,得到单一需求集和混合需求集,包括:
6.根据权利要求4所述的方法,其特征在于,所述对所述单一需求集中各单一需求对应的第一源码进行编译,并对所述混合需求集中各混合需...
【专利技术属性】
技术研发人员:曾庆隆,
申请(专利权)人:北京五八信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。