本申请涉及计算机技术领域,特别是涉及一种库模块发布方法、装置、设备及存储介质。
背景技术:
实际应用中,安卓系统的开发人员可以将库模块发布至共享仓库中,以使访问该共享仓库的其他人员能够调用该库模块。其中,库模块是安卓系统中应用程序的一种组成部分,库模块可以被调用,以通过调用实现该库模块的功能。
相关技术中,开发人员可以将一个工程包括的多个库模块打包发布至共享仓库中,然而,利用这样的发布方式发布的库模块很可能不能被正常使用。
技术实现要素:
基于此,本申请实施例提供了一种库模块发布方法、装置、设备及存储介质,可以保证库模块的正常使用。
第一方面,提供了一种库模块发布方法,该方法包括:
获取待发布的发布库模块所依赖的依赖库模块的标识;基于该依赖库模块的标识判断该依赖库模块是否访问受限,得到判断结果;将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中。
在其中一个实施例中,基于该依赖库模块的标识判断该依赖库模块是否访问受限,得到判断结果,包括:
基于该依赖库模块的标识判断该依赖库模块是否与该发布库模块属于同一工程;若该依赖库模块与该发布库模块属于同一工程,确定该判断结果为该依赖库模块访问不受限。
在其中一个实施例中,该方法还包括:
若该依赖库模块与该发布库模块不属于同一工程,则基于该依赖库模块的标识判断该依赖库模块是否位于访问受限的仓库内;若该依赖库模块位于访问受限的仓库内,确定该判断结果为该依赖库模块访问受限;若该依赖库模块不位于访问受限的仓库内,确定该判断结果为该依赖库模块访问不受限。
在其中一个实施例中,根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中,包括:
若该判断结果为该依赖库模块访问不受限,则禁止将该依赖库模块共同发布至该共享仓库中;若该判断结果为该依赖库模块访问受限,则将该依赖库模块共同发布至该共享仓库中。
在其中一个实施例中,该方法还包括:
将该依赖库模块的标识写入该发布库模块的依赖配置文件中,并将该发布库模块的依赖配置文件发布至该共享仓库中。
在其中一个实施例中,基于该依赖库模块的标识判断该依赖库模块是否位于访问受限的仓库内,包括:
创建发布任务,该发布任务包括判断该依赖库模块是否位于访问受限的仓库的条件参数;在执行该发布任务的过程中,利用该发布任务中的条件参数,根据该依赖库模块的标识判断该发布库模块是否位于访问受限的仓库内。
在其中一个实施例中,获取待发布的发布库模块所依赖的依赖库模块的标识,包括:
获取该发布库模块直接依赖的第一依赖库模块的标识以及该第一依赖库模块的第一依赖配置文件;根据该第一依赖配置文件,获取该发布库模块间接依赖的第二依赖库模块的标识。
在其中一个实施例中,该第二依赖库模块包括第1级至第n级第二依赖库模块,根据该第一依赖配置文件,获取该发布库模块间接依赖的第二依赖库模块的标识,包括:
根据该第一依赖配置文件,搜索第1级第二依赖库模块,根据该第1级第二依赖库模块的依赖配置文件依次搜索第2级至第n级第二依赖库模块,并通过搜索得到该第1级至第n级第二依赖库模块的标识;其中,在搜索第j级第二依赖库模块时,获取已经搜索到的第j-1级第二依赖库模块的依赖配置文件,根据该第j-1级第二依赖库模块的依赖配置文件搜索该第j级第二依赖库模块,j为大于1且小于等于n的整数。
第二方面,提供了一种库模块发布装置,该装置包括:
获取模块,用于获取待发布的发布库模块所依赖的依赖库模块的标识;
判断模块,用于基于该依赖库模块的标识判断该依赖库模块是否访问受限,得到判断结果;
发布模块,用于将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中。
在其中一个实施例中,该判断模块,具体用于:
基于该依赖库模块的标识判断该依赖库模块是否与该发布库模块属于同一工程;若该依赖库模块与该发布库模块属于同一工程,确定该判断结果为该依赖库模块访问不受限。
在其中一个实施例中,该判断模块,具体用于:
若该依赖库模块与该发布库模块不属于同一工程,则基于该依赖库模块的标识判断该依赖库模块是否位于访问受限的仓库内;若该依赖库模块位于访问受限的仓库内,确定该判断结果为该依赖库模块访问受限;若该依赖库模块不位于访问受限的仓库内,确定该判断结果为该依赖库模块访问不受限。
在其中一个实施例中,该发布模块,具体用于:
若该判断结果为该依赖库模块访问不受限,则禁止将该依赖库模块共同发布至该共享仓库中;若该判断结果为该依赖库模块访问受限,则将该依赖库模块共同发布至该共享仓库中。
在其中一个实施例中,该发布模块,还用于:
将该依赖库模块的标识写入该发布库模块的依赖配置文件中,并将该发布库模块的依赖配置文件发布至该共享仓库中。
在其中一个实施例中,该判断模块,具体用于:
创建发布任务,该发布任务包括判断该依赖库模块是否位于访问受限的仓库的条件参数;在执行该发布任务的过程中,利用该发布任务中的条件参数,根据该依赖库模块的标识判断该发布库模块是否位于访问受限的仓库内。
在其中一个实施例中,该获取模块,具体用于:
获取该发布库模块直接依赖的第一依赖库模块的标识以及该第一依赖库模块的第一依赖配置文件;根据该第一依赖配置文件,获取该发布库模块间接依赖的第二依赖库模块的标识。
在其中一个实施例中,该第二依赖库模块包括第1级至第n级第二依赖库模块,该获取模块,具体用于:
根据该第一依赖配置文件,搜索第1级第二依赖库模块,根据该第1级第二依赖库模块的依赖配置文件依次搜索第2级至第n级第二依赖库模块,并通过搜索得到该第1级至第n级第二依赖库模块的标识;其中,在搜索第j级第二依赖库模块时,获取已经搜索到的第j-1级第二依赖库模块的依赖配置文件,根据该第j-1级第二依赖库模块的依赖配置文件搜索该第j级第二依赖库模块,j为大于1且小于等于n的整数。
第三方面,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该计算机程序被该处理器执行时实现如上述第一方面任一所述的库模块发布方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一所述的库模块发布方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过获取待发布的发布库模块所依赖的依赖库模块的标识,并基于该依赖库模块的标识判断该依赖库模块是否访问受限,从而得到判断结果,而后,将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中,由于计算机设备可以根据依赖库模块是否访问受限来确定是否将发布库模块和依赖库模块共同发布至共享仓库中,因此,可以保证访问受限的依赖库模块能够和发布库模块一起被发布至共享仓库中,从而使该访问受限的依赖库模块能够在共享仓库中被访问到,这样,就可以保证发布于共享仓库中的发布库模块的正常使用。
附图说明
图1为本申请实施例提供的一种计算机设备的框图;
图2为本申请实施例提供的一种库模块发布方法的流程图;
图3为本申请实施例提供的另一种库模块发布方法的流程图;
图4为本申请实施例提供的另一种库模块发布方法的流程图;
图5为本申请实施例提供的一种库模块发布装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
实际应用中,安卓系统的开发人员可以将库模块(英文:librarymodule)发布至共享仓库中,以使访问该共享仓库的其他人员能够调用该库模块。其中,库模块是安卓系统中应用程序的一种组成部分,库模块可以被调用,以通过调用实现该库模块的功能。
实践中比较常见的共享仓库包括maven仓库,通常情况下,开发人员可以通过gradle的发布脚本(英文:publish脚本)将一个工程包括的多个库模块打包发布至maven仓库中。
实际应用中,库模块之间通常存在依赖关系,在实现库模块的功能时,库模块需要调用其依赖的库模块。因此,当共享仓库中的某一库模块被调用时,该库模块就需要调用其所依赖的库模块。然而,在一些情况下,共享仓库中的库模块所依赖的库模块无法被访问到,在出现这种情况时,共享仓库中的库模块就无法被正常使用。
例如,共享仓库中存储有库模块a,该库模块a依赖库模块b,而库模块b无法被访问到,当库模块a被调用时,其需要调用库模块b才能实现自身的功能,而由于库模块b无法被访问到,因此,库模块a就无法实现自身的功能,这导致库模块a无法被正常使用。
有鉴于此,本申请实施例提供了一种库模块发布方法,在该库模块发布方法中,计算机设备可以获取待发布的发布库模块所依赖的依赖库模块的标识,并基于该依赖库模块的标识判断该依赖库模块是否访问受限,从而得到判断结果,而后,计算机设备可以将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中,由于计算机设备可以根据依赖库模块是否访问受限来确定是否将发布库模块和依赖库模块共同发布至共享仓库中,因此,可以保证访问受限的依赖库模块能够和发布库模块一起被发布至共享仓库中,从而使该访问受限的依赖库模块能够在共享仓库中被访问到,这样,就可以保证发布于共享仓库中的发布库模块的正常使用。
下面,将对本申请实施例提供的库模块发布方法所涉及到的实施环境进行简要说明。
其中,该实施环境可以包括计算机设备,该计算机设备可以为终端或者服务器,该计算机设备可以用于执行本申请实施例提供的库模块发布方法。
请参考图1,其示出了该计算机设备的内部结构图。如图1所示,该计算机设备包括通过系统总线连接的处理器和存储器。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行时以实现一种库模块发布方法。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
请参考图2,其示出了本申请实施例提供的一种库模块发布方法的流程图,如上文所述,该库模块发布方法可以应用于计算机设备中。如图2所示,该库模块发布方法可以包括以下步骤:
步骤201、计算机设备获取待发布的发布库模块所依赖的依赖库模块的标识。
这里所谓的“发布库模块”指的是需要发布至共享仓库中的库模块,该发布库模块可以是一个工程中的库模块。
如上文所述,实际应用中,库模块之间通常存在依赖关系,在实现库模块的功能时,库模块需要调用其依赖的库模块,例如,库模块a依赖库模块b,在实现库模块a的功能时,库模块a需要调用该库模块b。
通常情况下,库模块之间的依赖关系可以包括直接依赖和间接依赖两种,其中,间接依赖指的是两个库模块间通过中间的库模块进行相互依赖,直接依赖指的是两个库模块间不通过中间的库模块进行相互依赖。
例如,库模块a依赖库模块b,库模块b依赖库模块c,由于库模块a和库模块c需要通过中间的库模块b进行相互依赖,因此,库模块a和库模块c之间的依赖关系为间接依赖,由于库模块a和库模块b不需要通过中间的库模块进行相互依赖,库模块b和库模块c也不需要通过中间的库模块进行相互依赖,因此,库模块a和库模块b之间的依赖关系为直接依赖,库模块b和库模块c之间的依赖关系也为直接依赖。
在步骤201中,计算机设备可以调用预先设置的gradle脚本,通过该gradle脚本对发布库模块的依赖进行遍历,通过遍历可以得到发布库模块直接依赖的依赖库模块(以下称为第一依赖库模块)的标识,以及间接依赖的依赖库模块(以下称为第二依赖库模块)的标识。
步骤202、计算机设备基于依赖库模块的标识判断依赖库模块是否访问受限,得到判断结果。
实际应用中,许多库模块的访问是不受限的,例如,安卓系统本身提供的一些库模块对于所有的开发人员均开放,其访问不受限,又例如,存放在本地仓库中的库模块对于本地访问而言不受限。通常情况下,访问不受限的库模块意味着该库模块可以被访问到。
然而,实际应用中,许多库模块的访问是受限的,例如,某些互联网企业的私有仓库中的库模块对企业外部并不开放,对于企业外部来说,这些库模块的访问就受限。通常情况下,访问受限的库模块意味着该库模块无法被访问到。
在步骤202中,计算机设备可以通过上文所述的gradle脚本调用发布脚本(英文:publish脚本),该发布脚本可以执行预先创建的发布任务,通过对该发布任务的执行,计算机设备可以基于依赖库模块的标识判断依赖库模块是否访问受限,从而得到判断结果,其中,该判断结果包括依赖库模块访问受限和依赖库模块访问不受限两种。
步骤203、计算机设备将发布库模块发布至共享仓库中,并根据判断结果确定是否将依赖库模块共同发布至共享仓库中。
若判断结果为依赖库模块访问不受限,那么发布库模块在被调用时,其可以正常调用该依赖库模块,因此,发布库模块可以被正常使用,在这种情况下,可以禁止将依赖库模块共同发布至共享仓库中。
若判断结果为依赖库模块访问受限,那么发布库模块在被调用时,其无法正常调用该依赖库模块,因此,发布库模块无法被正常使用,在这种情况下,可以将该依赖库模块连同发布库模块共同发布至共享仓库中。这样,具有访问共享仓库权限的用户可以既访问到发布库模块,又访问到依赖库模块,那么其在调用发布库模块时,也可以正常调用依赖库模块,这样,就可以保证发布库模块能够被正常使用。
可选的,在本申请的一个实施例中,计算机设备还可以将依赖库模块的标识写入发布库模块的依赖配置文件(英文:pom文件)中,并将发布库模块的依赖配置文件发布至共享仓库中。
可选的,计算机设备可以仅将发布库模块直接依赖的第一依赖库模块的标识写入发布库模块的依赖配置文件中。
通过将依赖库模块的标识写入发布库模块的依赖配置文件中,可以起到声明发布库模块的依赖关系的作用。
可选的,在创建上文所述的发布任务时,技术人员可以输入工程的标识(英文:groupid)以及工程版本号(英文:version)作为该发布任务的参数,在本申请实施例中,计算机设备还可以将工程的标识以及工程版本号写入该发布库模块的依赖配置文件中。
请参考图3,在上文所述实施例的基础之上,可选的,在本申请实施例中,计算机设备可以按照如图3所示的步骤实现上述步骤202的技术过程。
步骤2021、计算机设备基于依赖库模块的标识判断依赖库模块是否与发布库模块属于同一工程。
通常情况下,同一工程的库模块会同时被发布至共享仓库内,同时,同一工程内的库模块之间可以相互依赖。例如,某一工程可以包括库模块a、库模块b和库模块c,其中,库模块a可以依赖库模块b。
由于同一工程的库模块会同时被发布至共享仓库中,因此,若某一发布库模块所依赖的依赖库模块与该发布库模块属于同一工程,那么,就说明该发布库模块所依赖的依赖库模块的访问不受限。
考虑到上述情况,在步骤2021中,计算机设备可以基于依赖库模块的标识判断依赖库模块是否与发布库模块属于同一工程。可选的,计算机设备中可以存储有发布库模块所在工程中包含的所有库模块的标识,若依赖库模块的标识与该工程中包含的某一库模块的标识相同,说明该依赖库模块与发布库模块属于同一工程,反之,若依赖库模块的标识与该工程中包含的任一库模块的标识均不相同,说明该依赖库模块与发布库模块不属于同一工程。
步骤2022、若依赖库模块与发布库模块属于同一工程,计算机设备确定判断结果为依赖库模块访问不受限。
步骤2023、若依赖库模块与发布库模块不属于同一工程,计算机设备基于依赖库模块的标识判断依赖库模块是否位于访问受限的仓库内。
实际应用中,若依赖库模块位于访问受限的仓库内,那么该依赖库模块的访问就会受限。
例如,访问受限的仓库可以是互联网企业的私有仓库,其仅对企业内部开放,而对企业外部不开放,则对企业外部而言,该私有仓库访问受限。
基于此,在本申请实施例中,计算机设备可以判断依赖库模块是否位于访问受限的仓库内,从而判断依赖库模块是否访问受限。
其中,需要指出的是,在本申请实施例中,计算机设备拥有该“访问受限的仓库”的访问权限。
例如,对于互联网企业的私有仓库而言,对于企业外部而言,该私有仓库访问受限,而对于企业内部而言,该私有仓库访问不受限,则本申请实施例中的计算机设备可以位于企业内部,其拥有该私有仓库的访问权限。
可选的,计算机设备中可以存储有该访问受限的仓库内中包含的所有库模块的标识,若依赖库模块的标识与该访问受限的仓库内包含的某一库模块的标识相同,说明该依赖库模块位于访问受限的仓库内,反之,若依赖库模块的标识与该访问受限的仓库内包含的任一库模块的标识均不相同,说明该依赖库模块不常见位于访问受限的仓库内。
可选的,在创建上文所述的发布任务时,技术人员可以还输入判断依赖库模块是否位于访问受限的仓库的条件参数,以作为该发布任务的参数,例如,该条件参数可以包括访问受限的仓库内中包含的所有库模块的标识,又例如,该条件参数可以指示一存储地址,该存储地址对应的存储空间中存储有访问受限的仓库内中包含的所有库模块的标识。
在执行发布任务的过程中,计算机设备可以利用该发布任务中的条件参数,根据依赖库模块的标识判断发布库模块是否位于访问受限的仓库内。
步骤2024、若依赖库模块位于访问受限的仓库内,计算机设备确定判断结果为依赖库模块访问受限。
步骤2025、若依赖库模块不位于访问受限的仓库内,计算机设备确定判断结果为依赖库模块访问不受限。
请参考图4,在上文所述实施例的基础之上,可选的,在本申请实施例中,计算机设备可以按照如图4所示的步骤实现上述步骤201的技术过程。
步骤401、计算机设备获取发布库模块直接依赖的第一依赖库模块的标识以及第一依赖库模块的第一依赖配置文件。
可选的,计算机设备可以获取发布库模块的gradle脚本中的依赖配置信息(英文:dependencies),其中,该依赖配置信息用于指示发布库模块直接依赖的第一依赖库模块的标识。
计算机设备可以根据该第一依赖库模块的标识获取该第一依赖库模块的第一依赖配置文件(英文:pom文件)。可选的,计算机设备可以根据该第一依赖库模块的标识在计算机本地的依赖配置文件缓存中进行查询,通过查询即可得到该第一依赖配置文件,其中,该依赖配置文件缓存中存储有多个依赖配置文件。
步骤402、计算机设备根据第一依赖配置文件,获取发布库模块间接依赖的第二依赖库模块的标识。
其中,该第二依赖库模块包括第1级至第n级第二依赖库模块,第i级第二依赖库模块直接依赖第i+1级第二依赖库模块。
在本申请实施例中,第一依赖库模块直接依赖第1级第二依赖库模块,而该第一依赖配置文件记录有第一依赖库模块直接依赖的库模块的标识(也即是第1级第二依赖库模块的标识),因此,可选的,计算机设备可以根据第一依赖配置文件搜索第1级第二依赖库模块。
接着,计算机设备可以根据第1级第二依赖库模块的依赖配置文件依次搜索第2级至第n级第二依赖库模块,并通过搜索得到该第1级至第n级第二依赖库模块的标识。
其中,在搜索第j级第二依赖库模块时,计算机设备可以在本地依赖配置文件缓存中获取已经搜索到的第j-1级第二依赖库模块的依赖配置文件,由于第j-1级第二依赖库模块的依赖配置文件记录有该第j-1级第二依赖库模块直接依赖的库模块的标识,因此,计算机设备可以根据该第j-1级第二依赖库模块的依赖配置文件搜索该第j级第二依赖库模块,j为大于1且小于等于n的整数。
请参考图5,其示出了本申请实施例提供的一种库模块发布装置500的框图,该库模块发布装置500可以配置于上文所述的计算机设备中。如图5所示,该库模块发布装置500可以包括:获取模块501、判断模块502和发布模块503。
该获取模块501,用于获取待发布的发布库模块所依赖的依赖库模块的标识。
该判断模块502,用于基于该依赖库模块的标识判断该依赖库模块是否访问受限,得到判断结果。
该发布模块503,用于将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中。
在本申请的一个实施例中,该判断模块502,具体用于:基于该依赖库模块的标识判断该依赖库模块是否与该发布库模块属于同一工程;若该依赖库模块与该发布库模块属于同一工程,确定该判断结果为该依赖库模块访问不受限。
在本申请的一个实施例中,该判断模块502,具体用于:若该依赖库模块与该发布库模块不属于同一工程,则基于该依赖库模块的标识判断该依赖库模块是否位于访问受限的仓库内;若该依赖库模块位于访问受限的仓库内,确定该判断结果为该依赖库模块访问受限;若该依赖库模块不位于访问受限的仓库内,确定该判断结果为该依赖库模块访问不受限。
在本申请的一个实施例中,该发布模块503,具体用于:若该判断结果为该依赖库模块访问不受限,则禁止将该依赖库模块共同发布至该共享仓库中;若该判断结果为该依赖库模块访问受限,则将该依赖库模块共同发布至该共享仓库中。
在本申请的一个实施例中,该发布模块503,还用于:将该依赖库模块的标识写入该发布库模块的依赖配置文件中,并将该发布库模块的依赖配置文件发布至该共享仓库中。
在本申请的一个实施例中,该判断模块502,具体用于:创建发布任务,该发布任务包括判断该依赖库模块是否位于访问受限的仓库的条件参数;在执行该发布任务的过程中,利用该发布任务中的条件参数,根据该依赖库模块的标识判断该发布库模块是否位于访问受限的仓库内。
在本申请的一个实施例中,该获取模块501,具体用于:获取该发布库模块直接依赖的第一依赖库模块的标识以及该第一依赖库模块的第一依赖配置文件;根据该第一依赖配置文件,获取该发布库模块间接依赖的第二依赖库模块的标识。
在本申请的一个实施例中,该第二依赖库模块包括第1级至第n级第二依赖库模块,该获取模块501,具体用于:根据该第一依赖配置文件,搜索第1级第二依赖库模块,根据该第1级第二依赖库模块的依赖配置文件依次搜索第2级至第n级第二依赖库模块,并通过搜索得到该第1级至第n级第二依赖库模块的标识;其中,在搜索第j级第二依赖库模块时,获取已经搜索到的第j-1级第二依赖库模块的依赖配置文件,根据该第j-1级第二依赖库模块的依赖配置文件搜索该第j级第二依赖库模块,j为大于1且小于等于n的整数。
本申请实施例提供的库模块发布装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于库模块发布装置的具体限定可以参见上文中对于库模块发布方法的限定,在此不再赘述。上述库模块发布装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在本申请的一个实施例中,提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待发布的发布库模块所依赖的依赖库模块的标识;基于该依赖库模块的标识判断该依赖库模块是否访问受限,得到判断结果;将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:基于该依赖库模块的标识判断该依赖库模块是否与该发布库模块属于同一工程;若该依赖库模块与该发布库模块属于同一工程,确定该判断结果为该依赖库模块访问不受限。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:若该依赖库模块与该发布库模块不属于同一工程,则基于该依赖库模块的标识判断该依赖库模块是否位于访问受限的仓库内;若该依赖库模块位于访问受限的仓库内,确定该判断结果为该依赖库模块访问受限;若该依赖库模块不位于访问受限的仓库内,确定该判断结果为该依赖库模块访问不受限。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:若该判断结果为该依赖库模块访问不受限,则禁止将该依赖库模块共同发布至该共享仓库中;若该判断结果为该依赖库模块访问受限,则将该依赖库模块共同发布至该共享仓库中。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:将该依赖库模块的标识写入该发布库模块的依赖配置文件中,并将该发布库模块的依赖配置文件发布至该共享仓库中。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:创建发布任务,该发布任务包括判断该依赖库模块是否位于访问受限的仓库的条件参数;在执行该发布任务的过程中,利用该发布任务中的条件参数,根据该依赖库模块的标识判断该发布库模块是否位于访问受限的仓库内。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:获取该发布库模块直接依赖的第一依赖库模块的标识以及该第一依赖库模块的第一依赖配置文件;根据该第一依赖配置文件,获取该发布库模块间接依赖的第二依赖库模块的标识。
在本申请的一个实施例中,处理器执行计算机程序时还实现以下步骤:该第二依赖库模块包括第1级至第n级第二依赖库模块,根据该第一依赖配置文件,搜索第1级第二依赖库模块,根据该第1级第二依赖库模块的依赖配置文件依次搜索第2级至第n级第二依赖库模块,并通过搜索得到该第1级至第n级第二依赖库模块的标识;其中,在搜索第j级第二依赖库模块时,获取已经搜索到的第j-1级第二依赖库模块的依赖配置文件,根据该第j-1级第二依赖库模块的依赖配置文件搜索该第j级第二依赖库模块,j为大于1且小于等于n的整数。
本申请实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在本申请的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待发布的发布库模块所依赖的依赖库模块的标识;基于该依赖库模块的标识判断该依赖库模块是否访问受限,得到判断结果;将该发布库模块发布至共享仓库中,并根据该判断结果确定是否将该依赖库模块共同发布至该共享仓库中。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于该依赖库模块的标识判断该依赖库模块是否与该发布库模块属于同一工程;若该依赖库模块与该发布库模块属于同一工程,确定该判断结果为该依赖库模块访问不受限。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:若该依赖库模块与该发布库模块不属于同一工程,则基于该依赖库模块的标识判断该依赖库模块是否位于访问受限的仓库内;若该依赖库模块位于访问受限的仓库内,确定该判断结果为该依赖库模块访问受限;若该依赖库模块不位于访问受限的仓库内,确定该判断结果为该依赖库模块访问不受限。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:若该判断结果为该依赖库模块访问不受限,则禁止将该依赖库模块共同发布至该共享仓库中;若该判断结果为该依赖库模块访问受限,则将该依赖库模块共同发布至该共享仓库中。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:将该依赖库模块的标识写入该发布库模块的依赖配置文件中,并将该发布库模块的依赖配置文件发布至该共享仓库中。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:创建发布任务,该发布任务包括判断该依赖库模块是否位于访问受限的仓库的条件参数;在执行该发布任务的过程中,利用该发布任务中的条件参数,根据该依赖库模块的标识判断该发布库模块是否位于访问受限的仓库内。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取该发布库模块直接依赖的第一依赖库模块的标识以及该第一依赖库模块的第一依赖配置文件;根据该第一依赖配置文件,获取该发布库模块间接依赖的第二依赖库模块的标识。
在本申请的一个实施例中,计算机程序被处理器执行时还实现以下步骤:该第二依赖库模块包括第1级至第n级第二依赖库模块,根据该第一依赖配置文件,搜索第1级第二依赖库模块,根据该第1级第二依赖库模块的依赖配置文件依次搜索第2级至第n级第二依赖库模块,并通过搜索得到该第1级至第n级第二依赖库模块的标识;其中,在搜索第j级第二依赖库模块时,获取已经搜索到的第j-1级第二依赖库模块的依赖配置文件,根据该第j-1级第二依赖库模块的依赖配置文件搜索该第j级第二依赖库模块,j为大于1且小于等于n的整数。
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。