一种构建依赖方法和装置制造方法及图纸

技术编号:33285987 阅读:13 留言:0更新日期:2022-04-30 23:53
本发明专利技术实施例提供了一种构建依赖方法和装置,涉及软件开发技术领域,该方法包括:获取工程的工程配置文件,以及,工程中业务线的业务线配置文件;其中,工程配置文件记录有多个私有依赖和多个公有依赖组,多个公有依赖组中的任一公有依赖组包括多个私有依赖中的至少一个;业务线配置文件记录有业务线所需的目标公有依赖组;然后获取业务线所需的目标公有依赖组对应的目标私有依赖,并构建业务线与目标私有依赖的依赖关系。本发明专利技术实施例可以对所有的单个依赖进行统一管理,避免了同一个依赖出现多个版本冲突的问题,以及,解决了单个依赖无法管理,以及单个依赖公用时会出现一方修改版本号其他业务线依赖被强制升级的问题。版本号其他业务线依赖被强制升级的问题。版本号其他业务线依赖被强制升级的问题。

【技术实现步骤摘要】
一种构建依赖方法和装置


[0001]本专利技术涉及软件开发
,特别是涉及一种构建依赖方法和一种构建依赖装置。

技术介绍

[0002]AAR(Android Archive)是一个Android源码库的二进制归档文件,不仅包含了Java文件,还包含资源文件、AndroidManifest.xml以及build.gradle配置文件等。一个AAR其实就是一个Android源码库(包括代码、资源和配置文件)的打包归档文件。
[0003]Gradle是一个基于JVM(Java Virtual Machine,Java虚拟机)的自动化构建开源工具,它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,支持传递性依赖管理,抛弃了基于XML的各种繁琐配置。
[0004]现有技术中,在对工程中的业务线构建依赖时,可以通过如下方式实现:
[0005]1)在业务线的Gradle配置文件build.gradle中添加AAR依赖;
[0006]2)在工程根目录下的config.gradle文件中统一配置AAR依赖,然后各业务线获取全局对象下定义的AAR依赖。
[0007]但是,上述方式分别存在以下缺陷:
[0008]1)由于历史的迭代,每个业务线使用的AAR依赖在整体项目中经常出现包名相同而版本号不一致的问题,从而直接导致了依赖冲突无法正常合并编译。比如,业务线Biz_1中的A=a1,Biz_2中的A=a2,此时,Biz_1和Biz_2依赖了相同的AAR,即“a”是相同的,但是版本号1和2不同;
[0009]2)各业务线的依赖很容易被其他业务线篡改,无法管理,而且,依赖库不能设置修改权限,依赖库公用时会出现一方修改版本号其他业务线依赖被强制升级的问题。

技术实现思路

[0010]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种构建依赖方法和相应的一种构建依赖装置。
[0011]为了解决上述问题,本专利技术实施例公开了一种构建依赖方法,其特征在于,所述方法包括:
[0012]获取工程的工程配置文件,以及,所述工程中业务线的业务线配置文件;其中,所述工程配置文件记录有多个私有依赖和多个公有依赖组,所述多个公有依赖组中的任一公有依赖组包括所述多个私有依赖中的至少一个;所述业务线配置文件记录有所述业务线所需的目标公有依赖组;
[0013]获取所述业务线所需的目标公有依赖组对应的目标私有依赖;
[0014]构建所述业务线与所述目标私有依赖的依赖关系。
[0015]在一个或多个实施例中,所述获取所述业务线所需的目标公有依赖组对应的目标私有依赖,包括:
[0016]从所述工程配置文件中查找所述业务线所需的目标公有依赖组;
[0017]获取所述目标公有依赖组中至少一个目标私有依赖对应的至少一个依赖模式;
[0018]获取所述至少一个目标私有依赖在对应的依赖模式下的依赖文件。
[0019]在一个或多个实施例中,所述获取所述至少一个目标私有依赖在对应的依赖模式下的依赖文件,包括:
[0020]针对所述至少一个目标私有依赖中的任一目标私有依赖,若所述依赖模式为工程源码模式,则获取所述任一目标私有依赖的工程源码依赖文件;
[0021]若所述依赖模式为安卓归档模式,则获取所述任一目标私有依赖的安卓归档依赖文件。
[0022]在一个或多个实施例中,所述获取所述任一目标私有依赖的工程源码依赖文件,包括:
[0023]通过findProject()方法获取所述任一目标私有依赖的工程源码依赖文件;
[0024]所述获取所述任一目标私有依赖的安卓归档依赖文件,包括:
[0025]通过rootProject.ext方法获取所述任一目标私有依赖的安卓归档依赖文件。
[0026]在一个或多个实施例中,所述工程配置文件中还记录有所述依赖模式;所述依赖模式定义在所述工程的模式配置文件中;
[0027]所述获取所述目标公有依赖组中至少一个目标私有依赖对应的至少一个依赖模式,包括:
[0028]从所述模式配置文件中获取所述目标公有依赖组中至少一个目标私有依赖对应的至少一个依赖模式。
[0029]在一个或多个实施例中,所述多个公有依赖组定义在所述工程配置文件中的ext对象中,所述多个私有依赖定义在所述工程配置文件中的ext对象之外。
[0030]相应的,本专利技术实施例公开了一种构建依赖装置,其特征在于,所述装置包括:
[0031]获取模块,用于获取工程的工程配置文件,以及,所述工程中业务线的业务线配置文件;其中,所述工程配置文件记录有多个私有依赖和多个公有依赖组,所述多个公有依赖组中的任一公有依赖组包括所述多个私有依赖中的至少一个;所述业务线配置文件记录有所述业务线所需的目标公有依赖组;
[0032]所述获取模块,还用于获取所述业务线所需的目标公有依赖组对应的目标私有依赖;
[0033]构建模块,用于构建所述业务线与所述目标私有依赖的依赖关系。
[0034]在一个或多个实施例中,所述获取模块,包括:
[0035]查找子模块,用于从所述工程配置文件中查找所述业务线所需的目标公有依赖组;
[0036]模式获取子模块,用于获取所述目标公有依赖组中至少一个目标私有依赖对应的至少一个依赖模式;
[0037]依赖获取子模块,用于获取所述至少一个目标私有依赖在对应的依赖模式下的依赖文件。
[0038]在一个或多个实施例中,所述依赖获取子模块,具体用于:
[0039]针对所述至少一个目标私有依赖中的任一目标私有依赖,若所述依赖模式为工程
源码模式,则获取所述任一目标私有依赖的工程源码依赖文件;若所述依赖模式为安卓归档模式,则获取所述任一目标私有依赖的安卓归档依赖文件。
[0040]在一个或多个实施例中,所述依赖获取子模块,具体用于:
[0041]通过findProject()方法所述任一目标私有依赖的工程源码依赖文件;
[0042]以及,
[0043]通过rootProject.ext方法获取所述任一目标私有依赖的安卓归档依赖文件。
[0044]在一个或多个实施例中,所述工程配置文件中还记录有所述依赖模式;所述依赖模式定义在所述工程的模式配置文件中;
[0045]所述模式获取子模块,具体用于:
[0046]从所述模式配置文件中获取所述目标公有依赖组中至少一个目标私有依赖对应的至少一个依赖模式。
[0047]在一个或多个实施例中,所述多个公有依赖组定义在所述工程配置文件中的ext对象中,所述多个私有依赖定义在所述工程配置文件中的ext对象之外。
[0048]相应的,本专利技术实施例公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述构建本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种构建依赖方法,其特征在于,所述方法包括:获取工程的工程配置文件,以及,所述工程中业务线的业务线配置文件;其中,所述工程配置文件记录有多个私有依赖和多个公有依赖组,所述多个公有依赖组中的任一公有依赖组包括所述多个私有依赖中的至少一个;所述业务线配置文件记录有所述业务线所需的目标公有依赖组;获取所述业务线所需的目标公有依赖组对应的目标私有依赖;构建所述业务线与所述目标私有依赖的依赖关系。2.根据权利要求1所述的构建依赖方法,其特征在于,所述获取所述业务线所需的目标公有依赖组对应的目标私有依赖,包括:从所述工程配置文件中查找所述业务线所需的目标公有依赖组;获取所述目标公有依赖组中至少一个目标私有依赖对应的至少一个依赖模式;获取所述至少一个目标私有依赖在对应的依赖模式下的依赖文件。3.根据权利要求2所述的构建依赖方法,其特征在于,所述获取所述至少一个目标私有依赖在对应的依赖模式下的依赖文件,包括:针对所述至少一个目标私有依赖中的任一目标私有依赖,若所述依赖模式为工程源码模式,则获取所述任一目标私有依赖的工程源码依赖文件;若所述依赖模式为安卓归档模式,则获取所述任一目标私有依赖的安卓归档依赖文件。4.根据权利要求3所述的构建依赖方法,其特征在于,所述获取所述任一目标私有依赖的工程源码依赖文件,包括:通过findProject()方法获取所述任一目标私有依赖的工程源码依赖文件;所述获取所述任一目标私有依赖的安卓归档依赖文件,包括:通过rootProject.ext方法获取所述任一目标私有依赖的安卓归档依赖文件。5.根据权利要求2所述的构建依赖方法,其特征在于,所述工程配置文件中还记录有所述依赖模式;所述依赖模式定义在所述工程的模式配置文件中;...

【专利技术属性】
技术研发人员:曾鹏
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:

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

1