库文件处理方法、装置、计算机设备及存储介质与流程

文档序号:18360199发布日期:2019-08-06 23:43阅读:171来源:国知局
库文件处理方法、装置、计算机设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种库文件处理方法、装置、计算机设备及存储介质。



背景技术:

目前app等项目在开发过程中,会大量使用到第三方库,用来提升开发效率,在每次编译时,会从外部自动下载所需要使用到的第三方库,传统的做法是,将第三方库下载到本地的私有目录下,这样会有一个问题就是,在大规模app系统开发过程中,系统开发的各个模块是分给不同的开发小组进行开发的,每个开发小组都有可能下载并引用到同一个第三方库文件,也就是说每个开发者会下载到同一个第三方库文件,造成重复下载,且针对同个第三方库文件,小组需要单独从外部下载,获取到第三方库文件的效率较为低下。



技术实现要素:

本发明提供了一种库文件处理方法、装置、计算机设备及存储介质,有效地减少造成第三方库文件的重复下载,提高了第三方库文件的获取效率。

一种库文件处理方法,包括:

将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器,所述第三方库文件为开发小组在进行编译过程中首次从外网服务器所下载并引用的库文件,所述代码仓库为用于存储所述开发小组所首次下载的所述第三方库文件的本地文件夹,不同的开发小组对应不同的代码仓库;

当接收到引用目标第三方库文件的指令时时,确定所述本地代码仓库服务器中是否存在所述目标第三方库文件;

若确定所述本地代码仓库服务器中存在所述目标第三方库文件,则从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

一种库文件处理装置,包括:

同步模块,用于将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器,所述第三方库文件为开发小组在进行编译过程中首次从外网服务器所下载并引用的库文件,所述代码仓库为用于存储所述开发小组所首次下载的所述第三方库文件的本地文件夹,不同的开发小组对应不同的代码仓库;

确定模块,用于当接收到引用目标第三方库文件的指令时,确定所述本地代码仓库服务器中是否存在所述目标第三方库文件;

获取模块,用于若所述确定模块确定所述本地代码仓库服务器中存在所述目标第三方库文件,则从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述库文件处理方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述库文件处理方法。

上述库文件处理方法、装置、计算机设备及存储介质所实现的方案中,由于可以减少开发小组重复从外部服务器下载相同的第三方库文件,有效地减少了在大规模开发项目在开发过程中,每个开发小组需要从外部下载相同的第三方库文件,造成重复下载的情况,只要被一个开发小组下载过,其他开发小组即可从本地代码仓库服务器中获取到并引用,提高了库文件获取效率,从而整体提高开开发项目的开发效率。

附图说明

为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明中库文件处理方法的系统架构示意图;

图2是本发明中库文件处理方法的一个实施例流程示意图;

图3是本发明中库文件处理方法的另一实施例流程示意图;

图4是本发明中库文件处理方法的另一实施例流程示意图;

图5是本发明中库文件处理方法的另一实施例流程示意图;

图6是本发明中库文件处理方法的另一实施例流程示意图;

图7是本发明中库文件处理方法的另一实施例流程示意图;

图8是本发明中库文件处理装置的一实施例结构示意图;

图9是本发明中库文件处理装置的另一实施例结构示意图;

图10是本发明计算机设备的一个实施例结构示意图。

具体实施方式

下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的库文件处理方法,可应用在如图1的系统架构示意图中,包括外部服务器、本地代码仓库服务器以及多个计算机设备,其中,计算机设备通过网络与服务器进行通信。其中,计算机设备可以但不限于各种个人计算机、笔记本电脑等程序开发人员用于开发应用程序所用的计算机设备,多个计算机设备中的每个计算机设备指的是为每个开发组所分配的计算机设备,上述服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,外部服务器指的计算机设备所处的网络局域网外,用于提供第三方库文件的服务器。

在一实施例中,如图2所示,提供一种库文件处理方法,以该方法应用在图1中的计算机设备为例进行说明,包括如下步骤:

s10:将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器,所述第三方库文件为开发小组在进行编译过程中首次从外网服务器所下载并引用的库文件,所述代码仓库为用于存储所述开发小组所首次下载的所述第三方库文件的本地文件夹。

第三方库文件是指首次从外部所下载的包含有变量、函数、类或其他资源,并且可用于编译应用程序的代码文件。可以理解,为了提高对应用程序的开发效率,在开发小组对应用程序进行开发的过程中,通常会从外部下载第三方库文件,并在对应用程序进行编译的过程中进行引用。具体地,在编译应用程序时,将所获取的第三方库文件与应用程序的其他代码模块组合起来,从而创建出该应用程序对应的可执行文件。

其中,在本发明实施例中,对于每个开发小组而言,都对应有一个代码仓库,该代码仓库为该开发小组进行应用程序开发时,用于存储所下载的第三方库文件的本地文件夹。需要说明的是,上述每个开发小组可以指的是,针对同一个开发项目(例如同个app开发项目)的各个代码模块进行的各个开发小组,也可以是指不同开发项目(例如不同的app开发项目)的各个开发小组,这里不做限定。也就是说,每个开发小组对应的代码仓库都存储有首次从外部所下载的第三方库文件。另外需要说明的是,本发明实施例只是以图1中的其中一个计算机设备为执行主体进行说明,对于其他计算机设备,也可以有对应的开发小组。值得注意的是,在一些应用场景中,图1所示的计算机设备属于同个局域网内的计算机设备,上述代码仓库可以是指上述局域网内的共享文件夹,上述局域网内的每个计算机设备都可访问到上述共享文件夹,并指定一个计算机设备执行本发明实施例所提供的库文件处理方法,从而通过该指定的计算机设备将下载至代码仓库(即共享文件夹)下的第三方库文件同步存储至本地代码仓库服务器。

在本发明实施例中,将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器中。也就是说,针对每个开发小组而言,每个首次被下载的第三方库文件都会被自动同步至本地代码仓库服务器中,该本地代码仓库服务器是用于同步所有开发小组对应的代码仓库的服务器。

示例性的,假设开发小组a下载了第三方库文件1,开发小组b下载了第三方库文件2,开发小组c下载了第三方库文件3,则会将上述第三方库文件1、2以及3同步至上述本地代码仓库服务器中。

s20:当接收到引用目标第三方库文件的指令时,确定所述本地代码仓库服务器中是否存在所述目标第三方库文件。

可以理解的是,在app等项目在开发过程中,会大量使用到第三方库,用来提升开发效率,具体是在编写项目代码时,在代码中利用实现第三方库的引用(也就是下载),在传统的方案中,在每次编译代码需引用第三方库文件时,会生成用于引用第三方库文件的指令,在服务器接收到该引用第三方库文件的指,会从外部自动下载并引用需要使用到的第三方库文件,在本发明实施例中,当接收到引用目标第三方库文件的指令时,不会从直接外部下载该目标第三方库文件,而是先确定所述本地代码仓库服务器中是否存在所述目标第三方库文件。具体地,可以根据目标第三方库文件的版本名和版本号与本地代码仓库服务器中的第三方库文件进行匹配,若本地代码仓库服务器中存在与目标第三方库文件的版本名和版本号一致的第三方库文件,则确定所述本地代码仓库服务器中存在所述目标第三方库文件。

s30:若确定所述本地代码仓库服务器中存在所述目标第三方库文件,则从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

也就是说,当存在某个开发小组在对某个应用程序进行编译时需下载目标第三库文件时,不会立马从外部下载该目标第三方库文件,而是确定所述本地代码仓库服务器中存在所述目标第三方库文件之后,从所述本地代码仓库服务器获取所述目标第三方库文件并引用。可以理解,通过本发明实施例提供的库文件处理方法,可以减少开发小组重复从外部服务器下载相同的第三方库文件,有效地减少了在大规模app开发过程中,每个开发小组需要从外部下载相同的第三方库文件,造成重复下载,只要被一个开发小组下载过,其他开发小组即可从本地代码仓库服务器中获取到并引用,提高了库文件获取效率,从而提高开发效率。

在一实施例中,如图3所示,步骤s20之前,也即所述确定所述本地代码仓库服务器中是否存在所述目标第三方库文件之前,该库文件处理方法还包括如下步骤:

s40:确定所述目标开发小组对应的代码仓库是否存在所述目标第三方库文件。

s50:若确定所述目标开发小组对应的代码仓库未存在所述目标第三方库文件,则触发所述确定所述本地代码仓库服务器中是否存在所述目标第三方库文件的步骤。

s60:若确定所述目标开发小组对应的代码仓库下存在所述目标第三方库文件,则从所述目标开发小组对应的代码仓库中获取所述目标第三方库文件并引用。

对于步骤s40-s60,可以理解,对于目标开发小组而言,若目标开发小组对应的代码仓库存在目标第三方库,则无需从本地代码仓库服务器获取,只需在目标开发小组对应的代码仓库获取目标第三方库即可,使得第三方库文件的获取效率更高。若目标开发小组对应的代码仓库不存在目标第三方库时,才触发确定所述本地代码仓库服务器中是否存在所述目标第三方库文件的步骤以及后续步骤。其中,需要说明的是,若确定所述本地代码仓库服务器中也不存在所述目标第三方库文件,则说明该目标第三方库文件为首次引用的库文件,则从外部下载到该目标第三方库文件中,将该目标第三方库文件添加至该目标小组对应的代码仓库中。可见,本发明实施例,通过多种获取方式有效地保证了获取效率,并保证文件获取成功率。

在一实施例中,如图4所示,步骤s10中,也即所述将下载至每一个代码仓库下的第三方库文件同步存储至本地代码仓库服务器,具体包括如下步骤:

s11:获取所述下载至代码仓库下的所述第三方库文件。

s12:确定所述代码仓库下的所述第三方库文件的文件信息,所述文件信息包括版本号以及版本名。

对于步骤s11-s12,可以理解,每个开发小组对应的代码仓库都存储有该开发小组首次从外部所下载的第三方库文件,在本发明实施例中,从预设小组范围内的所有开发小组对应的代码仓库中,获取下载至代码仓库下的第三方库文件,并确定出所获取的每个第三方库文件的文件信息,其中,第三方库文件的文件信息包括该第三方库文件的版本号以及版本名。需要说明的是,上述预设小组范围可以指的是同个公司或同个开发部门,具体这里不做限定。

s13:根据所述代码仓库下的第三方库文件的版本号以及版本名筛选出库文件集合,所述库文件集合为所述每一个代码仓库下的第三方库文件中版本号或版本名不同的第三方库文件的集合。

在本发明实施例中,确定所述代码仓库下的第三方库文件的文件信息之后,根据所述代码仓库下的第三方库文件的版本号以及版本名筛选出库文件集合,所述库文件集合为所述代码仓库下的第三方库文件中版本号或版本名不同的第三方库文件的集合。

举例说明,假设开发小组a下载了第三方库文件1(版本名:readelf-h,版本号:v1.0),开发小组b下载了第三方库文件2(版本名:readelf-h,版本号:v2.0),开发小组c下载了第三方库文件3(版本名:objdump-a,版本号:v1.0),开发小组d下载了第三库文件4(版本名:readelf-h,版本号:v1.0),则从上述第三方库文件1、2、3和4中,筛选出版本号或版本名不同的库文件(也即第三方库文件1、2、3;或第三方库文件1、2、4)作为本发明实施例中的库文件集合。需要说明的是,上述例子在这里只是举例说明,在实际应用中,库文件集合中可以包括多个不同版本名或版本号的第三方库文件。

s14:将所述库文件集合同步至所述本地代码仓库服务器。

在获取到上述库文件集合之后,再将上述库文件集合同步至本地代码仓库服务器中。可以理解,本发明实施例中,由于开发小组在编译引用第三方库文件时,其他开发小组编译引用的第三方库文件有可能是同一个库文件,经过本发明实施例,可以从下载至每个开发小组对应的代码仓库下所有的第三方库文件中,筛选出不同版本号或版本名的库文件进行同步,可以有效地减少了本地代码仓库服务器中存在相同版本号以及版本名的库文件,有效地减少本地代码仓库服务器的存储负担。

在一实施例中,如图5所示,具体地,步骤s14中,也即所述将所述库文件集合同步至所述本地代码仓库服务器,具体包括如下步骤:

s141:确定所述库文件集合中的每个待同步库文件所对应的排序因子,所述每个待同步库文件所对应的排序因子由所述每个待同步库文件对应的文件大小以及文件引用次数所确定。

在本发明实施例中,将库文件集合中的第三方库文件称为待同步库文件。所述排序因子由所述第三方库文件的文件大小以及文件引用次数所确定,也就是说,该第三方库文件所对应的排序因子与该第三方库文件的文件大小和文件引用次数相关。其中,第三方库文件的文件引用次数指的是该第三方个库文件被开发小组所引用的次数,具体地,在每个开发小组进行编译过程中,会记录每个编译所引用的第三方库文件的引用次数,那么根据所有的开发小组的记录数据,可以确定出某个第三方库文件的文件引用次数。例如,第三方库文件1被开发小组1引用过一次,也被开发小组2引用过一次,则该第三方库文件1被引用的文件引用次数为2,与此类推,具体这里不一一阐述。针对库文件集合中的每个待同步库文件,获取每个待同步库文件对应的排序因子,其中,该排序因子与该待同步库文件的文件大小和该待同步库文件的引用次数相关,该排序因子用于表征待同步库文件同步至本地代码仓库服务器的同步顺序。

s142:根据所述每个待同步库文件的文件信息所对应的排序因子,对所述每个待同步库文件进行排序以生成文件序列。

在获取到所述库文件集合中的每个待同步库文件所对应的排序因子后,根据所述每个待同步库文件所对应的排序因子,对所述每个待同步库文件进行排序以生成文件序列。具体地,可以按照排序因子从大到小的顺序对所有的待同步库文件进行排序以生成上述文件序列,排序因子越大,越先进行同步至本地代码仓库服务器中的步骤。

s143:按照所述文件序列将所述每个待同步库文件同步至所述本地代码仓库服务器中。

在得到文件序列后,按照所述文件序列将所述每个待同步库文件同步至所述本地代码仓库服务器中。在一实施例中,对于服务器而言,针对库文件集合中不同版本名的待同步库文件,为不同版本名的待同步库文件在本地代码仓库服务器中建立各自的文件存储路径,并以存储路径名作为存储标识,按照所述文件序列将所述每个待同步库文件同步至所述本地代码仓库服务器中,便于后续从该本地代码仓库服务器中获取所需的第三方库文件;另一方面是在对库文件集合中的待同步库文件进行同步的时候,需综合考虑了该待同步库文件的排序因子对待同步库文件的同步顺序的限定,由于该排序因子是由待同步库文件的文件大小和文件引用次数所确定的,也就是说,可根据待同步库文件的文件大小和文件引用次数对待同步库文件进行同步,可以有效地减少文件比较大的文件同时同步时系统的同步压力,还可以将文件引用次数较高的待同步库文件进行先同步,用户可以依据实际情况进行配置,提高了方案的灵活性。具体地,在一些实施例中,可通过git或者svn软件工具进行待同步库文件的同步,具体这里不展开赘述。

具体地,在一实施例中,如图6所示,步骤s142中,也即所述确定所述库文件集合中的每个待同步库文件所对应的排序因子,具体包括如下步骤:

s1421:获取预先配置的文件大小权重系数以及文件引用次数权重系数。

本发明实施例中,对待同步库文件预先设置了文件大小权重系数和文件引用次数权重系数,分别用于确定待同步库文件的文件大小以及文件引用次数的受关注程度,其中,文件大小权重系数与文件引用次数权重系数之间的和为1,用户可以依据需求设置文件大小权重系数与文件引用次数权重系数,具体本发明实施例不做限定。

s1422:根据所述文件大小权重系数以及所述文件大小对应确定所述每个待同步库文件的第一参考值。

在得到每个待同步库文件的文件大小后,可以根据文件大小权重系数以及每个待同步库文件的文件大小,确定出每个待同步库文件所对应的第一参考值。示例性的,可以通过标准化处理方式将每个待同步文件的文件引用次数进行归一化处理,将归一化后的待同步库文件的文件大小与文件大小权重系数之间的乘积作为待同步库文件所对应的第一参考值,从而获得每个待同步库文件所对应的第一参考值。

s1423:根据所述文件引用次数权重系数以及所述文件引用次数对应确定所述每个待同步库文件的第二参考值。

在得到每个待同步库文件的文件引用次数后,可以根据文件引用次数权重系数以及每个待同步库文件的文件引用次数,确定出每个待同步库文件所对应的第二参考值。示例性的,可以通过标准化处理方式将每个待同步文件的文件引用次数进行归一化处理,再将归一化后的待同步库文件的文件引用次数与文件引用次数权重系数之间的乘积作为待同步库文件所对应的第二参考值,从而获得每个待同步库文件所对应的第二参考值。

s1424:根据所述每个待同步库文件的所述第一参考值以及所述第二参考值对应确定所述每个待同步库文件的所述排序因子。

本发明实施例中,在得到待同步库文件所对应的第一参考值和第二参考值后,可以根据该待同步库文件所对应的第一参考值和第二参考值确定出该待同步库文件所对应的排序因子。示例性的,将第一参考值与第二参考值之间的和作为排序因子。基于上述一样的排序因子计算方式,可以获得库文件集合中,每个待同步库文件所对应的排序因子。

举个例子,首先通过标准化方法(normalizationmethod)每个待同步文件的文件大小做归一化处理,并且对每个文件引用次数做归一化处理,使得文件大小和文件引用次数按照预设比例缩放,落在所需的数值区间。数据标准化是将数据按比例缩放,使之落入一个小的特定数值区间。由于文件大小与文件引用次数的指标度量单位是不同的,且数据差别较大,为了能够将指标参与评价计算,需要对上述文件大小以及文件引用次数这指标进行规范化处理,通过函数变换将其数值映射到某个数值区间,再通过公式:p=α*i+β*j计算出每个待同步文件所对应的排序因子,其中,p表示排序因子,α表示文件大小权重系数,i表示归一化后的文件大小数值,α*i表示第一参考值;β表示文件引用次数权重系数,j表示归一化后的文件引用次数,β*j表示第二参考值。需要说明的是,上述例子在这里只是举例说明,并不对本发明实施例造成限定。

在一实施例中,如图7所示,步骤s30中,也即从所述本地代码仓库服务器获取所述目标第三方库文件并引用,具体包括如下步骤:

s31:确定所述目标第三方库文件的目标版本名以及目标版本号。

如前面所述,确定所述本地代码仓库服务器中是否存在所述目标第三方库文件具体通过版本名和版本号进行确定。若本地代码仓库服务器存在有与目标第三方库文件的版本名和版本号都一致的库文件,则确定所述本地代码仓库服务器中存在所述目标第三方库文件。当确定所述本地代码仓库服务器中存在所述目标第三方库文件之后,可以确定目标第三方库文件对应的目标版本名以及目标版本号。

s32:根据所述目标第三方库文件的目标版本名,从预设存储标识列表中匹配出目标存储标识,其中,所述预设存储标识列表保存有所述本地代码仓库服务器存储的第三方库文件的版本名与存储标识之间的对应关系。

在本发明实施例中,配置有预设存储标识列表,该预设存储标识列表根据同步至本地代码仓库服务器的每个第三方库文件进行实时更新。其中,该所述预设存储标识列表保存有所述本地代码仓库服务器存储的每个第三方库文件的存储标识和版本名的对应关系,由于本发明实施例中是以存储路径名作为存储标识的,因此,预设存储标识列表保存有文件存储路径名和版本名之间的对应关系。

在确定出所述目标第三方库文件的版本名之后,根据所述目标第三方库文件的版本名,从预设存储标识列表中匹配出目标存储标识。

s33:确定出所述目标存储标识对应的目标存储路径名。

s34:根据所述目标存储路径以及目标版本号从所述本地代码仓库服务器中获取所述目标第三方库文件并引用。

根据所述目标第三方库文件的版本名,从预设存储标识列表中匹配出目标存储标识后,可从预设存储标识列表中确定出所述目标存储标识对应的目标存储路径,由于同一个版本名的第三方库文件是保存在本地代码仓库服务同一个文件存储路径下的,因此可根据所述目标存储路径和目标版本号获取所述目标第三方库文件并引用。可以理解,由于该预设存储标识列表是根据同步至本地代码仓库服务器的每个第三方库文件实时更新的,也就是说,每个同步至本地代码仓库服务器的第三方库文件的文件存储路径和存储路径名都是确定的,通过从预设存储标识列表中确定出所述目标存储标识对应的目标存储路径,并根据所述目标存储路径和版本号获取所述目标第三方库文件并引用,在具体实现中,计算机设备可生成一用于获取目标第三方库文件的库文件请求,该库文件请求包含目标存储路径以及目标版本号,并将包含库文件请求发送至本地代码仓库服务器,以使得本地代码仓库服务器目标存储路径以及目标版本号确定是否存在上述目标第三方库文件,若存在,则直接向计算机设备反馈上述目标第三方库文件,若不存在,则反馈不存在上述目标第三方库文件的指示信息给计算机设备,此时,对于计算机设备而言,计算设备则确定所述本地代码仓库服务器中不存在所述目标第三方库文件,在这时才通过外部服务器下载所需的目标第三方库文件。可见,通过本发明实施例,可以避免靠版本名和版本号盲目的从每个文件存储路径下寻找目标第三方库文件,只需要通过从预设存储标识列表中匹配出目标第三方库文件所对应的目标存储标识,即可快速找到存放目标第三方库文件的文件存储路径,进一步提高了第三方库文件的获取效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种库文件处理装置,该库文件处理装置与上述实施例中库文件处理方法一一对应。如图8所示,该库文件处理装置10包括同步模块101、确定模块102和获取模块103。各功能模块详细说明如下:

同步模块101,用于将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器,所述第三方库文件为开发小组在进行编译过程中首次从外网服务器所下载并引用的库文件,所述代码仓库为用于存储所述开发小组所首次下载的所述第三方库文件的本地文件夹;

确定模块102,用于当接收到引用第三方库文件的指令时,确定所述本地代码仓库服务器中同步模块101所同步的第三方库文件中是否存在所述目标第三方库文件;

获取模块103,用于若所述确定模块102确定所述本地代码仓库服务器中存在所述目标第三方库文件,则从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

在一实施例中,所述同步模块101具体用于:

获取所述下载至代码仓库下的第三方库文件;

确定所述代码仓库下的第三方库文件的文件信息,所述文件信息包括版本号以及版本名;

根据所述代码仓库下的第三方库文件的版本号以及版本名筛选出库文件集合,所述库文件集合为所述代码仓库下的第三方库文件中版本号或版本名不同的第三方库文件的集合;

将所述库文件集合同步至所述本地代码仓库服务器。

在一实施例中,所述文件信息还包括排序因子,其中,所述排序因子由所述第三方库文件的文件大小以及文件引用次数所确定;

同步模块101用于将所述库文件集合同步至所述本地代码仓库服务器,具体包括:

同步模块101用于:

确定所述库文件集合中的每个待同步库文件所对应的排序因子,所述每个待同步库文件所对应的排序因子由所述每个待同步库文件对应的文件大小以及文件引用次数所确定;

根据所述每个待同步库文件的文件信息所对应的排序因子,对所述每个待同步库文件进行排序以生成文件序列;

按照所述文件序列将所述每个待同步库文件同步至所述本地代码仓库服务器中。

在一实施例中,其中,所述同步模块101用于确定所述库文件集合中的每个待同步库文件所对应的排序因子,具体包括:

所述同步模块101具体用于:

获取预先配置的文件大小权重系数以及文件引用次数权重系数;

根据所述文件大小权重系数以及所述文件大小对应确定所述每个待同步库文件的第一参考值;

根据所述文件引用次数权重系数以及所述文件引用次数对应确定所述每个待同步库文件的第二参考值;

根据所述每个待同步库文件的所述第一参考值以及所述第二参考值对应确定所述每个待同步库文件的所述排序因子。

在一实施例中,获取模块103具体用于:

确定所述目标第三方库文件的目标版本名以及目标版本号;

根据所述目标第三方库文件的目标版本名,从预设存储标识列表中匹配出目标存储标识,其中,所述预设存储标识列表保存有所述本地代码仓库服务器存储的第三方库文件的版本名与存储标识之间的对应关系;

确定出所述目标存储标识对应的目标存储路径名;

根据所述目标存储路径以及目标版本号从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

在一实施例中,如图9所示,所述库文件处理装置还包括触发模块104:

所述确定模块102还用于所述确定所述本地代码仓库服务器中是否存在所述目标第三方库文件之前,确定所述目标开发小组对应的代码仓库是否存在所述目标第三方库文件;

触发模块104用于,若确定模块102确定所述目标开发小组对应的代码仓库未存在所述目标第三方库文件,则触发所述确定所述本地代码仓库服务器中是否存在所述目标第三方库文件的步骤;

获取模块103还用于:若确定模块102确定所述目标开发小组对应的代码仓库下存在所述目标第三方库文件,则从所述目标开发小组对应的代码仓库中获取所述目标第三方库文件并引用。

通过本发明实施例提供的库文件处理装置,可以减少开发小组重复从外部服务器下载相同的第三方库文件,有效地减少了在大规模app开发过程中,每个开发小组需要从外部下载相同的第三方库文件,造成重复下载,只要被一个开发小组下载过,其他开发小组即可从本地代码仓库服务器中获取到并引用,提高了库文件获取效率,从而提高开发项目的开发效率,提升了开发人员的用户体验。

关于库文件处理装置的具体限定可以参见上文中对于库文件处理方法的限定,在此不再赘述。上述库文件处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是电脑,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于临时存储待同步的第三方库文件等。该计算机设备的网络接口用于与外部的服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种库文件处理方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器,所述第三方库文件为开发小组在进行编译过程中首次从外网服务器所下载并引用的库文件,所述代码仓库为用于存储所述开发小组所首次下载的所述第三方库文件的本地文件夹;

当接收到引用目标第三方库文件的指令时,确定所述本地代码仓库服务器中是否存在所述目标第三方库文件;

若确定所述本地代码仓库服务器中存在所述目标第三方库文件,则从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

将下载至代码仓库下的第三方库文件同步存储至本地代码仓库服务器,所述第三方库文件为开发小组在进行编译过程中首次从外网服务器所下载并引用的库文件,所述代码仓库为用于存储所述开发小组所首次下载的所述第三方库文件的本地文件夹;

当接收到引用目标第三方库文件的指令时,确定所述本地代码仓库服务器中是否存在所述目标第三方库文件;

若确定所述本地代码仓库服务器中存在所述目标第三方库文件,则从所述本地代码仓库服务器获取所述目标第三方库文件并引用。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1