应用的构建方法及装置、存储介质及电子装置制造方法及图纸

技术编号:37328070 阅读:10 留言:0更新日期:2023-04-21 23:06
本申请公开了一种应用的构建方法及装置、存储介质及电子装置,涉及智慧家庭技术领域,该应用的构建方法包括:通过应用构建工具获取构建请求,其中,所述构建请求用于请求构建第一版本的目标应用;通过所述构建请求获取所述目标应用对应的目标模块依赖文件、目标构建文件,其中,所述目标模块依赖文件用于指示构建所述目标应用所需的多个代码模块的版本;所述目标构建文件包括:目标工程文件、目标配置文件、目标资源文件;根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用。采用上述技术方案,解决了通过多分支构建多版本应用的构建效率较低的问题。多版本应用的构建效率较低的问题。多版本应用的构建效率较低的问题。

【技术实现步骤摘要】
应用的构建方法及装置、存储介质及电子装置


[0001]本申请涉及智慧家庭
,具体而言,涉及一种应用的构建方法及装置、存储介质及电子装置。

技术介绍

[0002]在工程化构建应用(Application,简称为App)时,App工程的所有文件都在版本控制工具下管理,比如git,将App的工程管理在一个仓库中。构建时,一般会采用该仓库的某个分支或tag的文件去编译打包。原始的App工程所包含的文件大致分为两类:一是源代码文件,二是配置及资源文件。基于模块化架构的App工程包含的文件也可分为两类:一是模块依赖文件,二是配置及资源文件。
[0003]上面提到原始的App工程,是指最基本的工程组织方式,该方式将源代码和配置及资源放在同一个库中管理。而对于大型App,一般同时有多个业务方、多个团队协同开发维护,这种原始的工程组织管理方式难以确保App安全稳定的迭代更新。这时往往基于功能和业务的差异,将App拆分成许多较小单元,即模块;各团队在各自的代码库中开发维护不同的模块;构建时,将各模块的指定版本整合起来进行编译打包。这就是上面所谓的基于模块化架构的App工程。可以拆分到模块的有源代码、资源和部分工程配置。
[0004]但无论是哪种工程组织管理方式,在构建App时都缺不了一套整体层面的配置及资源文件,这是无法拆分的。这种整体层面的配置及资源文件基本是App各异的、与模块无关的,每个App有自己特有的一套。基于模块化架构的App工程包含的两类文件中,模块依赖文件中注明App要整合哪些模块的哪个版本;配置及资源文件主要就是整体层面的配置及资源文件。构建前先通过工具,将模块依赖文件中指定的所有模块的文件获取到,然后再构建打包。
[0005]对于每一个App版本,其配置及资源文件与源代码文件同等重要,并且必须匹配。换句话说,如果版本A的配置及资源文件与版本B的源代码在一起构建,要么无法构建成功,要么容易产生运行时的错误或异常。但在开发实践中,一段时间内往往需要同时构建多个版本。例如,在版本V1.1.0开发新功能,在版本V1.0.1修复V1.0.0的问题。此时经常会遇到一个场景:这两个版本同时进入集成测试阶段,需要频繁地构建两个版本。假设V1.1.0修改了工程配置文件,而V1.0.1必须采用早前V1.0.0的工程配置文件,这样采用一个分支构建的弊端就产生了。为了解决这种版本冲突,实际中的做法是在构建每个版本前临时将配置文件改成需要的,或者采用某种分支策略,通过使用不同分支,来隔离各版本App工程配置及资源文件的差异。例如,假设构建V1.0.0版本时在V1.0.0分支,之后在基于V1.0.0的新分支V1.0.1上开发V1.0.1的版本,在基于V1.0.0的新分支V1.1.0上开发V1.1.0的功能。这样,如果要构建V1.0.1版本,那么直接在V1.0.1分支构建即可。如果要构建V1.1.0版本,则直接在V1.1.0分支构建即可。
[0006]但在多分支开发时,这些分支之间并不是完全独立的,因为还涉及到分支合并的问题。例如,V1.0.1开发完成后,其它正在开发的分支应当将其合并到自己分支,否则
V1.0.1的变动尤其是配置及资源文件的变动就会丢失,而分支合并又会潜在冲突和解决冲突的事务。并且随着App的版本迭代,代码仓会累积大量的分支,这会带来存储、性能、维护成本等问题。
[0007]针对相关技术中,通过多分支构建多版本应用的构建效率较低的问题,目前尚未提出有效的解决方案。
[0008]因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。

技术实现思路

[0009]本专利技术实施例提供了一种应用的构建方法及装置、存储介质及电子装置,以至少解决通过多分支构建多版本应用的构建效率较低的问题。
[0010]根据本专利技术实施例的一方面,提供一种应用的构建方法,包括:通过应用构建工具获取构建请求,其中,所述构建请求用于请求构建第一版本的目标应用;通过所述构建请求获取所述目标应用对应的目标模块依赖文件、目标构建文件,其中,所述目标模块依赖文件用于指示构建所述目标应用所需的多个代码模块的版本;所述目标构建文件包括:目标工程文件、目标配置文件、目标资源文件;根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用。
[0011]在一个示例性的实施例中,通过所述构建请求获取所述目标应用对应的目标模块依赖文件、目标构建文件,包括:获取第一参考文件,其中,所述第一参考文件中记录有应用的版本与模块依赖文件和构建文件的版本的对应关系;通过所述第一参考文件确定与所述第一版本相对应的第二版本与第三版本,其中,所述第二版本为所述目标模块依赖文件的版本,所述第三版为所述目标构建文件的版本;获取所述第二版本的所述目标模块依赖文件;以及获取所述第三版本的所述目标构建文件。
[0012]在一个示例性的实施例中,获取所述第二版本的所述目标模块依赖文件,包括:获取第二参考文件,其中,所述第二参考文件中记录有不同版本的模块依赖文件;从所述第二参考文件中获取所述第二版本的所述目标模块依赖文件。
[0013]在一个示例性的实施例中,获取所述第三版本的所述目标构建文件,包括:获取第一文件库,其中,所述第一文件库中具有不同版本的构建文件;所述构建文件包括:工程文件、配置文件、资源文件;从所述第一文件库中获取所述第三版本的所述目标构建文件。
[0014]在一个示例性的实施例中,根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用,包括:根据所述目标模块依赖文件从代码库中获取构建所述目标应用所需的多个代码模块,其中,所述代码库中具有不同版本的代码模块;根据所述多个代码模块和所述目标构建文件构建所述第一版本的目标应用。
[0015]在一个示例性的实施例中,根据所述多个代码模块和所述目标构建文件构建所述第一版本的目标应用,包括:获取所述目标应用的构建标准;将所述多个代码模块和所述目标构建文件按照所述构建标准进行融合,并指示所述应用构建工具通过所述融合后的文件构建所述目标应用。
[0016]在一个示例性的实施例中,根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用之后,所述方法还包括:将所述目标模块依赖文件、所述目标构建文件存储至第二文件库中,其中,所述第二文件库用于存储不同版本的应用的模块依赖文
件和构建文件。
[0017]根据本专利技术实施例的另一方面,还提供了一种应用的构建装置,包括:第一获取模块,用于通过应用构建工具获取构建请求,其中,所述构建请求用于请求构建第一版本的目标应用;第二获取模块,用于通过所述构建请求获取所述目标应用对应的目标模块依赖文件、目标构建文件,其中,所述目标模块依赖文件用于指示构建所述目标应用所需的多个代码模块的版本;所述目标构建文件包括:目标工程文件、目标配置文件、目标资源文件;构建模块,用于根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用。
[0018]在一个示例性的实施例中,第二获本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用的构建方法,其特征在于,包括:通过应用构建工具获取构建请求,其中,所述构建请求用于请求构建第一版本的目标应用;通过所述构建请求获取所述目标应用对应的目标模块依赖文件、目标构建文件,其中,所述目标模块依赖文件用于指示构建所述目标应用所需的多个代码模块的版本;所述目标构建文件包括:目标工程文件、目标配置文件、目标资源文件;根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用。2.根据权利要求1所述的方法,其特征在于,通过所述构建请求获取所述目标应用对应的目标模块依赖文件、目标构建文件,包括:获取第一参考文件,其中,所述第一参考文件中记录有应用的版本与模块依赖文件和构建文件的版本的对应关系;通过所述第一参考文件确定与所述第一版本相对应的第二版本与第三版本,其中,所述第二版本为所述目标模块依赖文件的版本,所述第三版为所述目标构建文件的版本;获取所述第二版本的所述目标模块依赖文件;以及获取所述第三版本的所述目标构建文件。3.根据权利要求2所述的方法,其特征在于,获取所述第二版本的所述目标模块依赖文件,包括:获取第二参考文件,其中,所述第二参考文件中记录有不同版本的模块依赖文件;从所述第二参考文件中获取所述第二版本的所述目标模块依赖文件。4.根据权利要求2所述的方法,其特征在于,获取所述第三版本的所述目标构建文件,包括:获取第一文件库,其中,所述第一文件库中具有不同版本的构建文件;所述构建文件包括:工程文件、配置文件、资源文件;从所述第一文件库中获取所述第三版本的所述目标构建文件。5.根据权利要求1所述的方法,其特征在于,根据所述目标模块依赖文件、所述目标构建文件构建所述第一版本的目标应用,包括:根据所述目标模块依赖文...

【专利技术属性】
技术研发人员:张虎
申请(专利权)人:青岛海尔科技有限公司海尔智家股份有限公司
类型:发明
国别省市:

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

1