CN112650530A - 多类库集成方法、装置、电子设备及可读存储介质 - Google Patents

多类库集成方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN112650530A
CN112650530A CN202011639116.1A CN202011639116A CN112650530A CN 112650530 A CN112650530 A CN 112650530A CN 202011639116 A CN202011639116 A CN 202011639116A CN 112650530 A CN112650530 A CN 112650530A
Authority
CN
China
Prior art keywords
class library
class
directory
warehouse
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011639116.1A
Other languages
English (en)
Inventor
张达理
彭飞
邓竹立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuba Co Ltd
Original Assignee
Wuba Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN202011639116.1A priority Critical patent/CN112650530A/zh
Publication of CN112650530A publication Critical patent/CN112650530A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种多类库集成方法、装置、电子设备及可读存储介质,涉及软件开发技术领域。所述方法包括:根据工程配置文件将远程代码仓库下载至本地仓库,其中,远程代码仓库中包括多个类库;遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件;根据多个类库配置文件在本地仓库中集成多个目标类库。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。

Description

多类库集成方法、装置、电子设备及可读存储介质
技术领域
本发明涉及软件开发技术领域,尤其涉及一种多类库集成方法、装置、电子设备及可读存储介质。
背景技术
Git仓库是代码协作和版本控制平台,托管在网络上或云端的软件开发项目的版本库,Git仓库存储有软件开发项目的各种类库/Pod,其中,类库是软件开发工程中的代码或库文件。在软件开发工程中,可以通过Git仓库的云端地址,将云端的类库集成到本地的软件开发工程中。
现有技术中,iOS系统中常用的类库管理工具为Cocoapods,其可以通过简单的配置把需要用到的类库集成到软件工程中。Cocoapods可直接通过Git仓库集成类库。如图1所示,解析软件工程配置文件podfile来确定软件工程所需的类库包括“PodA、PodB、…”,通过依次判断软件工程架构中的类库是否存在于远程Git仓库中或本地,若类库存在于Git仓库中,则从云端Git仓库中下载类库。若类库存在本地,则直接进行本地类库的集成,安装类库编译对应的代码。
申请人在实现本发明的过程中,发现现有技术中至少存在以下问题:
Cocoapods的远程集成方法只支持通过git仓库集成把多个类库集成在一个类库中,如一个Git仓库中有多个目录和多个类库配置文件podspec文件,在这种情况下,现有技术中无法分别集成Git仓库中的多个类库。
针对上述问题,目前尚未提出有效的解决技术手段。。
发明内容
本发明实施例提供一种多类库集成方法、装置、电子设备及可读存储介质,以解决现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种多类库集成方法,所述方法包括:根据工程配置文件将远程代码仓库下载至本地仓库,其中,所述远程代码仓库中包括多个类库;遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件;根据所述多个类库配置文件在所述本地仓库中集成多个目标类库。
进一步地,根据工程配置文件下载多个远程代码仓库,包括:对所述工程配置文件进行解析,以得到所述远程代码仓库对应的仓库地址;根据所述仓库地址将所述远程代码仓库下载至所述本地仓库中的第二目录。
进一步地,所述第一目录为所述第二目录的子目录,其中,遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件,包括:遍历所述第二目录中的每个所述第一目录;根据所述第一目录的代码,获取与所述第一目录的目录名称对应的类库配置文件。
进一步地,根据所述多个类库配置文件在所述本地仓库中集成多个目标类库,包括:在所述本地仓库中生成与所述多个类库对应的多个类库目录;根据所述多个类库配置文件,在所述多个类库目录中分别生成所述多个目标类库对应的文件架构。
进一步地,根据所述多个类库配置文件在所述本地仓库中集成多个目标类库,包括:接收作用于本地仓库的第一输入,其中,所述第一输入用于从所述多个类库选取至少一个指定类库;响应于所述第一输入,在所述本地仓库中生成与所述至少一个指定类库对应的至少一个指定类库目录,以及,在所述本地仓库中生成与非指定类库对应的合并类库目录,其中,所述非指定类库为所述多个类库中未被选取的类库;根据所述至少一个指定类库对应的类库配置文件,在所述至少一个指定类库目录中分别生成与之对应的文件架构;以及,根据所述非指定类库对应的类库配置文件,在所述合并类库目录中生成与所述非指定类库对应的文件架构。
第二方面,本发明实施例另外提供了一种多类库集成装置,所述装置包括:下载单元,用于根据工程配置文件将远程代码仓库下载至本地仓库,其中,所述远程代码仓库中包括多个类库;配置单元,用于遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件;集成单元,用于根据所述多个类库配置文件在所述本地仓库中集成多个目标类库。
进一步地,所述下载单元包括:解析模块,用于对所述工程配置文件进行解析,以得到所述远程代码仓库对应的仓库地址;下载模块,用于根据所述仓库地址将所述远程代码仓库下载至所述本地仓库中的第二目录。
进一步地,所述第一目录为所述第二目录的子目录,其中,所述配置单元包括:遍历模块,用于遍历所述第二目录中的每个所述第一目录;配置模块,用于根据所述第一目录的代码,获取与所述第一目录的目录名称对应的类库配置文件。
进一步地,所述集成单元包括:第一处理模块,用于在所述本地仓库中生成与所述多个类库对应的多个类库目录;第二处理模块,用于根据所述多个类库配置文件,在所述多个类库目录中分别生成所述多个目标类库对应的文件架构。
进一步地,所述集成单元包括:输入模块,用于接收作用于本地仓库的第一输入,其中,所述第一输入用于从所述多个类库选取至少一个指定类库;第三处理模块,用于响应于所述第一输入,在所述本地仓库中生成与所述至少一个指定类库对应的至少一个指定类库目录,以及,在所述本地仓库中生成与非指定类库对应的合并类库目录,其中,所述非指定类库为所述多个类库中未被选取的类库;第四处理模块,用于根据所述至少一个指定类库对应的类库配置文件,在所述至少一个指定类库目录中分别生成与之对应的文件架构;以及,根据所述非指定类库对应的类库配置文件,在所述合并类库目录中生成与所述非指定类库对应的文件架构。
第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前第一方面所述的代码的多类库集成方法的步骤。
第四方面,本发明实施例另外提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前第一方面所述的代码的多类库集成方法的步骤。
在本发明实施例中,根据工程配置文件将远程代码仓库下载至本地仓库,其中,远程代码仓库中包括多个类库;遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件;根据多个类库配置文件在本地仓库中集成多个目标类库。具体地,通过将远程代码仓库下载到本地仓库,对远程代码仓库中的各个类库进行遍历,并在本地仓库获取各个类库对应的类库配置文件,基于类库配置文件将多个类库集成到本地仓库,实现了以类库为粒度构建模块,使得软件开发管理更加清晰,提升了软件开发效率。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的类库集成的流程示意图;
图2是本发明实施例中的一种多类库集成方法的流程示意图;
图3是本发明实施例中的又一种多类库集成方法的具体步骤流程图;
图4是本发明实施例中的一种多类库集成装置的结构示意图;
图5是本发明实施例中的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
在介绍本发明实施例提供的一种多类库集成方法之前,首先对一下名词进行解释:
Git仓库:是代码协作和版本控制平台,托管在网络上或云端的软件开发项目的版本库,Git仓库存储有软件开发项目的各种类库/Pod。
本地仓库:软件开发工程中进行代码编辑或存储的本地平台。
类库(Pod):软件开发工程中的代码或库文件。
Cocoapods:iOS系统中常用的类库管理工具。
在相关技术中,Cocoapods的远程集成方法只支持通过git仓库集成把多个类库集成在一个类库中,如一个Git仓库中有多个目录和多个类库配置文件podspec文件,在这种情况下,现有技术中无法分别集成Git仓库中的多个类库。
在本发明实施例中,提出了一种多类库集成方法,根据工程配置文件将远程代码仓库下载至本地仓库,其中,远程代码仓库中包括多个类库;遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件;根据多个类库配置文件在本地仓库中集成多个目标类库。具体地,通过将Git仓库下载到本地仓库,对Git仓库中的各个类库进行遍历,并在本地仓库获取各个类库对应的类库配置文件,基于类库配置文件将多个类库集成到本地仓库,实现了以类库为粒度构建软件工程的模块,使得软件开发管理更加清晰,提升了软件开发效率。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
以下对本发明实施例中的一种多类库集成方法进行说明,参照图2,示出了本发明实施例中一种多类库集成方法的步骤流程图,该方法具体可以包括以下步骤:
S201,根据工程配置文件将远程代码仓库下载至本地仓库,其中,远程代码仓库中包括多个类库。
具体地,工程配置文件中包括软件开发工程中需要进行集成的各个类库的代码所存储的位置,例如在工程配置文件中记载了PodA存储于Git仓库或本地仓库。在本实施例中,工程配置文件可以是podfile。
在本实施例中,远程代码仓库包括但不限于Git仓库、Gitlab等位于云端的远程代码仓库。而本地仓库则位于本地软件开发端的本地文档或本地数据库中。对于存储在本地仓库中的类库,可以直接进行本地类库的集成,无需要再从Git仓库中进行读取。
在本实施例中,在接收软件开发工程对应的类库安装指令之后,根据工程配置文件确定软件开发工程所需的目标类库所处的位置,本实施例中,对于具备多个类库的远程远程代码仓库,根据工程配置文件podfile确定远程代码仓库的地址,对远程代码仓库进行数据访问,将远程代码仓库中的代码文件下载至本地仓库中。
需要说明的是,本实施例中下载的远程代码仓库的数据文件可以是仅包括本地仓库请求的多个类库所对应的数据文件,可以不是将远程代码仓库中的全部数据下载至本地仓库。
需要说明的是,本地仓库和远程代码仓库通过通信网络与预设服务器等连接,通信网络包括但不限于局域网、广域网等。
S202,遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件。
在本实施例中,通过将远程代码仓库中的代码文件存储至本地仓库中的预设文件夹中,然后对远程代码仓库中的代码文件进行遍历以及类库匹配,以确定需要集成的类库所在的第一目录。在确定类库对应的代码文件所在的第一目录之后,输出类库对应的类库配置文件。
例如,Git仓库中的类库包括PodA、PodB以及PodC,在将Git仓库下载到本地仓库的预设文件夹之后,对从Git仓库中下载的代码文件进行遍历,以确定PodA、PodB以及PodC所在的第一目录A、第一目录B以及第一目录C。接着,读取第一目录A、第一目录B以及第一目录C中的代码文件,获取PodA、PodB以及PodC分别对应的类库配置文件PodspecA、PodspecB以及PodspecC。
S203,根据多个类库配置文件在本地仓库中集成多个目标类库。
具体地,在本实施例中,在获取到多个类库配置文件后,在本地仓库中建立类库对应的目录,基于类库配置文件以及第一目录中存储的类库的代码文件集成目标类库。
需要说明的是,在本实施例中,通过根据工程配置文件将多个类库远程代码仓库下载至本地仓库;遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件;根据多个类库配置文件在本地仓库中集成多个目标类库。具体地,通过将Git仓库下载到本地仓库,对Git仓库中的各个类库进行遍历,并在本地仓库获取各个类库对应的类库配置文件,基于类库配置文件将多个类库集成到本地仓库,实现了以类库为粒度构建软件工程的模块,使得软件开发管理更加清晰,提升了软件开发效率。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
可选地,在本实施例中,根据工程配置文件下载远程代码仓库,包括但不限于:对工程配置文件进行解析,以得到远程代码仓库对应的仓库地址;根据仓库地址将远程代码仓库下载至本地仓库中的第二目录。
具体地,在本实施例中,对工程配置文件进行解析,确定远程代码仓库例如Git仓库对应的仓库地址,基于仓库地址向远程代码仓库发送数据请求,以请求下载远程代码仓库中的多个类库的文件代码,将远程代码仓库下载至本地仓库中的第二目录中。
需要说明的是,第二目录类似于缓存,用于临时存储远程代码仓库中的数据。在将远程代码仓库中的多个类库集成在本地仓库之后,对第二目录中存储的数据进行清除,以保证本地仓库中的存储空间。
在一个例子中,在工程配置文件中嵌入固定代码,实现通过一个Git仓库集成仓库中多个类库的方法,具体可以包括以下步骤:
S1,在iOS系统的软件工程本地仓库的目录内,对工程配置文件Podfile进行编辑,在Podfile的“target‘xxx’do”后面加上预设函数load_git_mutipod_helper()。
S2,在Podfile的target‘xxx’do后面加上对预设函数load_git_mutipod_helper()的调用,并输入Git仓库的地址:
load_git_mutipod_helper('git@igit.xxx.com:aaa/PodA.git',’1.0’)
其中,git@igit.xxx.com:aaa/PodA.git'为Git仓库的仓库地址,1.0为git仓库的标签或者分支名称,标识是版本的代码)
S3,软件开工程终端的命令行的工程目录下输入安装类库“pod install”,即开始使用cocoapods配置工程。
S4,Cocopods在构建构工程配置时会读取podfile文件,在这个过程中会加入预设函数load_git_mutipod_helper,并在load_git_mutipod_helper('git@igit.xxx.com:aaa/,’1.0’)这一行执行函数。
S5,上述的预设函数会根据输入的git仓库地址,通过git clone-b#{tag}#{path}#{workflow_dir},将仓库下载至本地的Pods/workFlow_temp目录。
其中:{tag}代表预设函数输入的标签或分支名称,#{path}为Git仓库的仓库地址,#{workflow_dir}为固定的本地的Pods/workFlow_temp目录。
通过上述示例,基于预设函数确定Git仓库的仓库地址,将Git仓库下载至本地的目录中,实现了对多个类库代码数据的初步获取,实现了本地仓库与远程代码仓库的类库数据同步。
可选地,在本实施例中,第一目录为第二目录的子目录,其中,遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件,包括但不限于:遍历第二目录中的每个第一目录;根据第一目录的代码,获取与第一目录的目录名称对应的类库配置文件。
在本实施中,远程代码仓库对应的文件整体存放于第二目录中,第一目录为类库在远程代码仓库中的目录,通过遍历第二目录中每个类库对应的第一目录,来确定集成多个类库所需要的类库配置文件。
具体地,仍以上述示例为例进行说明,在上述步骤S1-S5中,通过预设函数确定Git仓库的仓库地址,将Git仓库下载至本地的workFlow_temp目录中,接下来:
S6,下载完成后,通过预设函数遍历Pods/workFlow_temp目录下每-个子目录,根据子目录的目录名称,输出对应的pod配置:例如,workFlow_temp目录下有PodA、PodB、PodC等3个类库对应的子目录,分别获取PodA、PodB、PodC对应的类库配置文件。
a)pod'PodA',:path=>'Pods/workFlow_temp/PodA'
b)pod'PodB',:path=>'Pods/workFlow_temp/PodB'
c)pod'PodC',:path=>'Pods/workFlow_temp/PodC'
通过上述示例,遍历第二目录中的每个第一目录;根据第一目录的代码,获取与第一目录的目录名称对应的类库配置文件,根据远程代码仓库中的代码文件来获取类库对应的类库配置文件,以实现对类库配置文件的快速获取,提升了软件的开发效率。
可选地,在本实施例中,根据多个类库配置文件在本地仓库中集成多个目标类库,包括但不限于:在本地仓库中生成与多个类库对应的多个类库目录;根据多个类库配置文件,在多个类库目录中分别生成多个目标类库对应的文件架构。
具体地,在本实施中,在通过远程代码仓库的代码文件获取了类库对应的配置文件之后,在本地仓库中创建与类库对应的类库目录,在类库目录中生成目标类库对应的文件架构,实现将远程代码仓库中的类库集成至本地仓库。需要说明的是,类库目录中的文件与远程代码仓库中类库中的文件一致,类库目录中包括目标类库对应的类库配置文件。
仍以上述示例为例进行说明,根据PodA、PodB、PodC对应的类库配置文件,在本地仓库中加入PodA、PodB、PodC分别对应的3个类库目录,类库目录中的文件架构根据各自目录下的podspec文件生成。
通过上述实施例,在本地仓库中生成与多个类库对应的多个类库目录;根据多个类库配置文件,在多个类库目录中分别生成多个目标类库对应的文件架构,实现了将远程代码仓库中的多个类库分别集成至本地仓库,提升软件开发效率。
可选地,在本实施例中,根据多个类库配置文件在本地仓库中集成多个目标类库,包括但不限于:接收作用于本地仓库的第一输入,其中,第一输入用于从多个类库选取至少一个指定类库;响应于第一输入,在本地仓库中生成与至少一个指定类库对应的至少一个指定类库目录,以及,在本地仓库中生成与非指定类库对应的合并类库目录,其中,非指定类库为多个类库中未被选取的类库;根据至少一个指定类库对应的类库配置文件,在至少一个指定类库目录中分别生成与之对应的文件架构;以及,根据非指定类库对应的类库配置文件,在合并类库目录中生成与非指定类库对应的文件架构。
具体的,在对远程代码仓库中的多个类库遍历完成之后,根据第一输入确定用户的选取的指定类库,对指定类库单独集成为指定类库,将非指定的类库集成一个合并类库,以满足用户的客制化需求。
在具体的应用场景中,仍以上述示例中类库PodA、PodB、PodC为例进行说明,在对第二目录中PodA、PodB、PodC的第一目录进行遍历之后,获取PodA、PodB、PodC分别对应的类库配置文件podspec文件。若第一输入选择PodB为指令类库,则将PodB单独集成为指定类库,PodA、PodC一起集成一个类库,即合并类库。
具体地,在本地仓库中生成PodB对应的指定类库目录,根据指定类库目录中的podspecB文件生成PodB的文件架构,以实现指定类库PodB的集成。在本地仓库中生成PodA、PodC对应的合并类库目录,根据合并类库目录中的podspecA、podspecC文件生成PodA、PodC的文件架构,以实现将PodA、PodC集成为一个类库。
通过上述实施例,实现了根据用户的客制化需求对指定类库进行灵活地集成,既满足了用户需求同时也提升了软件的开发效率。
通过在本实施例中的多类库集成方法,通过根据工程配置文件将多个类库远程代码仓库下载至本地仓库;遍历多个类库对应的多个第一目录,以及,获取与多个类库对应的多个类库配置文件;根据多个类库配置文件在本地仓库中集成多个目标类库。具体地,通过将远程代码仓库下载到本地仓库,对远程代码仓库中的各个类库进行遍历,并在本地仓库获取各个类库对应的类库配置文件,基于类库配置文件将多个类库集成到本地仓库,实现了以类库为粒度构建软件工程的模块,使得软件开发管理更加清晰,提升了软件开发效率。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
实施例二
详细介绍本发明实施例提供的一种多类库集成发送方法。
参照图3,图3中示出了本发明实施例中一种多类库集成方法的具体步骤流程图,具体可以包括以下步骤:
步骤301,获取类库安装指令;
具体地,类库安装指令中包括需要安装的目标类库。
步骤302,解析Podfile;
具体地,获取软件开发工程对应的工程配置文件Podfile,确定软件开发工程中需要集成的目标类库所处的位置。
步骤303,执行预设函数;
步骤304,判断目标类库是否位于Git仓库;
具体地,若目标类库位于Git仓库,则跳转至步骤305;若否,则跳转至步骤306。
步骤305,从Git仓库中下载目标类库;
步骤306,对本地目录进行遍历;
具体地,遍历本地目录中各个类库所在的子目录,获取目标类库对应的podspec文件。
步骤307,在本地目录中集成目标类库;
具体地,根据目标类库对应的podspec文件生成目标类库的文件架构。
通过上述实施例提出的多类库集成方法,将Git仓库下载到本地仓库,对Git仓库中的各个类库进行遍历,并在本地仓库获取各个类库对应的类库配置文件,基于类库配置文件将多个类库集成到本地仓库,实现了以类库为粒度构建软件工程的模块,使得软件开发管理更加清晰,提升了软件开发效率。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
实施例三
详细介绍本发明实施例提供的一种多类库集成装置。
参照图4,示出了本发明实施例中一种多类库集成装置的结构示意图。
本发明实施例的合并请求发送装置包括:下载单元40,配置单元42、集成单元44。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
下载单元40,用于根据工程配置文件将远程代码仓库下载至本地仓库,其中,所述远程代码仓库中包括多个类库;
配置单元423,用于遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件;
集成单元44,用于根据所述多个类库配置文件在所述本地仓库中集成多个目标类库。
可选地,在本实施例中,所述下载单元40包括:解析模块,用于对所述工程配置文件进行解析,以得到所述远程代码仓库对应的仓库地址;下载模块,用于根据所述仓库地址将所述远程代码仓库下载至所述本地仓库中的第二目录。
可选地,在本实施例中,所述第一目录为所述第二目录的子目录,其中,所述配置单元42包括:遍历模块,用于遍历所述第二目录中的每个所述第一目录;配置模块,用于根据所述第一目录的代码,获取与所述第一目录的目录名称对应的类库配置文件。
可选地,在本实施例中,所述集成单元44包括:第一处理模块,用于在所述本地仓库中生成与所述多个类库对应的多个类库目录;第二处理模块,用于根据所述多个类库配置文件,在所述多个类库目录中分别生成所述多个目标类库对应的文件架构。
可选地,在本实施例中,所述集成单元44包括:输入模块,用于接收作用于本地仓库的第一输入,其中,所述第一输入用于从所述多个类库选取至少一个指定类库;第三处理模块,用于响应于所述第一输入,在所述本地仓库中生成与所述至少一个指定类库对应的至少一个指定类库目录,以及,在所述本地仓库中生成与非指定类库对应的合并类库目录,其中,所述非指定类库为所述多个类库中未被选取的类库;第四处理模块,用于根据所述至少一个指定类库对应的类库配置文件,在所述至少一个指定类库目录中分别生成与之对应的文件架构;以及,根据所述非指定类库对应的类库配置文件,在所述合并类库目录中生成与所述非指定类库对应的文件架构。
通过上述实施例提出的多类库集成装置,将Git仓库下载到本地仓库,对Git仓库中的各个类库进行遍历,并在本地仓库获取各个类库对应的类库配置文件,基于类库配置文件将多个类库集成到本地仓库,实现了以类库为粒度构建软件工程的模块,使得软件开发管理更加清晰,提升了软件开发效率。解决了现有技术中在一个Git仓库中有多个目录和podspec文件的情况下,无法分别集成Git仓库中的多个类库的问题。
实施例四
图5为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与电子设备500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。
输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(Graphics Processing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元506上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克风5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。
电子设备500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板5051。
用户输入单元507可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。虽然在图5中,触控面板5071与显示面板5061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元508为外部装置与电子设备500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备500内的一个或多个元件或者可以用于在电子设备500和外部装置之间传输数据。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器510是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器510可包括一个或多个处理单元;优选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
电子设备500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备500包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供了一种电子设备,包括:处理器510,存储器509,存储在存储器509上并可在处理器510上运行的计算机程序,该计算机程序被处理器510执行时实现上述多类库集成方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述多类库集成方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种多类库集成方法,其特征在于,所述方法包括:
根据工程配置文件将远程代码仓库下载至本地仓库,其中,所述远程代码仓库中包括多个类库;
遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件;
根据所述多个类库配置文件在所述本地仓库中集成多个目标类库。
2.根据权利要求1所述的方法,其特征在于,根据工程配置文件下载多个远程代码仓库,包括:
对所述工程配置文件进行解析,以得到所述远程代码仓库对应的仓库地址;
根据所述仓库地址将所述远程代码仓库下载至所述本地仓库中的第二目录。
3.根据权利要求2所述的方法,其特征在于,所述第一目录为所述第二目录的子目录,其中,
遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件,包括:
遍历所述第二目录中的每个所述第一目录;
根据所述第一目录的代码,获取与所述第一目录的目录名称对应的类库配置文件。
4.根据权利要求3所述的方法,其特征在于,根据所述多个类库配置文件在所述本地仓库中集成多个目标类库,包括:
在所述本地仓库中生成与所述多个类库对应的多个类库目录;
根据所述多个类库配置文件,在所述多个类库目录中分别生成所述多个目标类库对应的文件架构。
5.根据权利要求3所述的方法,其特征在于,根据所述多个类库配置文件在所述本地仓库中集成多个目标类库,包括:
接收作用于本地仓库的第一输入,其中,所述第一输入用于从所述多个类库选取至少一个指定类库;
响应于所述第一输入,在所述本地仓库中生成与所述至少一个指定类库对应的至少一个指定类库目录,以及,在所述本地仓库中生成与非指定类库对应的合并类库目录,其中,所述非指定类库为所述多个类库中未被选取的类库;
根据所述至少一个指定类库对应的类库配置文件,在所述至少一个指定类库目录中分别生成与之对应的文件架构;以及,
根据所述非指定类库对应的类库配置文件,在所述合并类库目录中生成与所述非指定类库对应的文件架构。
6.一种多类库集成装置,其特征在于,所述装置包括:
下载单元,用于根据工程配置文件将远程代码仓库下载至本地仓库,其中,所述远程代码仓库中包括多个类库;
配置单元,用于遍历所述多个类库对应的多个第一目录,以及,获取与所述多个类库对应的多个类库配置文件;
集成单元,用于根据所述多个类库配置文件在所述本地仓库中集成多个目标类库。
7.根据权利要求6所述的装置,其特征在于,所述下载单元包括:
解析模块,用于对所述工程配置文件进行解析,以得到所述远程代码仓库对应的仓库地址;
下载模块,用于根据所述仓库地址将所述远程代码仓库下载至所述本地仓库中的第二目录。
8.根据权利要求7所述的装置,其特征在于,所述第一目录为所述第二目录的子目录,其中,所述配置单元包括:
遍历模块,用于遍历所述第二目录中的每个所述第一目录;
配置模块,用于根据所述第一目录的代码,获取与所述第一目录的目录名称对应的类库配置文件。
9.根据权利要求8所述的装置,其特征在于,所述集成单元包括:
第一处理模块,用于在所述本地仓库中生成与所述多个类库对应的多个类库目录;
第二处理模块,用于根据所述多个类库配置文件,在所述多个类库目录中分别生成所述多个目标类库对应的文件架构。
10.根据权利要求8所述的装置,其特征在于,所述集成单元包括:
输入模块,用于接收作用于本地仓库的第一输入,其中,所述第一输入用于从所述多个类库选取至少一个指定类库;
第三处理模块,用于响应于所述第一输入,在所述本地仓库中生成与所述至少一个指定类库对应的至少一个指定类库目录,以及,在所述本地仓库中生成与非指定类库对应的合并类库目录,其中,所述非指定类库为所述多个类库中未被选取的类库;
第四处理模块,用于根据所述至少一个指定类库对应的类库配置文件,在所述至少一个指定类库目录中分别生成与之对应的文件架构;以及,根据所述非指定类库对应的类库配置文件,在所述合并类库目录中生成与所述非指定类库对应的文件架构。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的多类库集成方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的多类库集成方法的步骤。
CN202011639116.1A 2020-12-31 2020-12-31 多类库集成方法、装置、电子设备及可读存储介质 Pending CN112650530A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011639116.1A CN112650530A (zh) 2020-12-31 2020-12-31 多类库集成方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011639116.1A CN112650530A (zh) 2020-12-31 2020-12-31 多类库集成方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN112650530A true CN112650530A (zh) 2021-04-13

Family

ID=75366918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011639116.1A Pending CN112650530A (zh) 2020-12-31 2020-12-31 多类库集成方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112650530A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821212A (zh) * 2021-09-28 2021-12-21 五八同城信息技术有限公司 一种信息处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357593A (zh) * 2017-08-24 2017-11-17 武汉斗鱼网络科技有限公司 源代码文件组建方法、装置、电子终端及可读存储介质
CN110377290A (zh) * 2019-07-22 2019-10-25 阿里巴巴集团控股有限公司 一种目标工程编译的方法、装置及设备
CN110597518A (zh) * 2019-09-17 2019-12-20 上海钧正网络科技有限公司 项目构建方法、装置、计算机设备和存储介质
WO2020233058A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 代码下载的方法、装置、电子设备及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357593A (zh) * 2017-08-24 2017-11-17 武汉斗鱼网络科技有限公司 源代码文件组建方法、装置、电子终端及可读存储介质
WO2020233058A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 代码下载的方法、装置、电子设备及计算机存储介质
CN110377290A (zh) * 2019-07-22 2019-10-25 阿里巴巴集团控股有限公司 一种目标工程编译的方法、装置及设备
CN110597518A (zh) * 2019-09-17 2019-12-20 上海钧正网络科技有限公司 项目构建方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821212A (zh) * 2021-09-28 2021-12-21 五八同城信息技术有限公司 一种信息处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN111049979B (zh) 一种应用分享方法、电子设备及计算机可读存储介质
CN107943489B (zh) 数据分享方法及移动终端
CN108089977B (zh) 一种应用程序的异常处理方法、装置及移动终端
CN111142930B (zh) 安装包文件打包方法、装置、终端设备及存储介质
CN109857297B (zh) 信息处理方法及终端设备
CN111752826A (zh) 一种接口测试方法、装置、电子设备及存储介质
CN110990679A (zh) 信息搜索方法及电子设备
CN111163449B (zh) 一种应用分享方法、第一电子设备及计算机可读存储介质
CN112231144A (zh) 一种数据处理方法、装置及电子设备
CN112650498B (zh) 静态库集成方法、装置、电子设备及存储介质
CN109284146B (zh) 一种轻应用开启方法及移动终端
CN110928797B (zh) 一种代码耦合检测方法、装置、终端设备及存储介质
CN112650530A (zh) 多类库集成方法、装置、电子设备及可读存储介质
CN111130995B (zh) 图像控制方法、电子设备及存储介质
CN111966373A (zh) Apn的重置方法、终端设备及存储介质
CN110879709A (zh) 无用代码的检测方法、装置、终端设备及存储介质
CN110990029A (zh) 一种应用程序的处理方法及电子设备
CN111026454A (zh) 功能启动方法及终端设备
CN107734049B (zh) 网络资源的下载方法、装置和移动终端
CN111045588B (zh) 一种信息查看方法及电子设备
CN112486567A (zh) 代码的合并请求发送方法、装置、电子设备及存储介质
CN111049989B (zh) 一种图像显示方法及电子设备
CN109325003B (zh) 一种基于终端设备的应用程序归类方法及系统
CN112230980A (zh) 一种依赖关系检测方法、装置、电子设备及存储介质
CN108958584B (zh) 一种应用分类方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination