CN114327595A - 组件发布方法、装置、设备及存储介质 - Google Patents
组件发布方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114327595A CN114327595A CN202111615245.1A CN202111615245A CN114327595A CN 114327595 A CN114327595 A CN 114327595A CN 202111615245 A CN202111615245 A CN 202111615245A CN 114327595 A CN114327595 A CN 114327595A
- Authority
- CN
- China
- Prior art keywords
- component
- components
- subset
- published
- publishing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000001419 dependent effect Effects 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012937 correction Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本公开提供一种组件发布方法、装置、设备及存储介质,属于计算机技术领域。其中,组件发布方法包括:针对待发布的组件集合,获取组件集合中各组件之间的依赖关系;基于依赖关系,将组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,至少一个第一组件在组件集合中的依赖组件均已发布,或者在组件集合中不存在依赖组件;以及在本轮组件发布操作中,对第一组件子集中的各组件进行组件发布。
Description
技术领域
本公开涉及信息处理技术领域,尤其涉及一种组件发布方法、装置、设备及存储介质。
背景技术
应用程序开发的组件化,极大的方便了应用程序的开发过程。但是,在实施组件化后,如果遇到需求涉及到多个组件一起上线时,发布的组件数量可能达到几十个,手动发布这些组件的话,导致开发效率较低。另外,在发布过程中,如果一个组件(比如又称之上层组件)依赖的组件(比如称之为下层组件)如果还未发布,当发布这个上层组件时,就会因为可能会因为缺少下层组件而发布失败。
发明内容
本公开实施例的目的在于提出一种组件发布方法、装置、设备及存储介质,以克服现有技术中的上述技术问题。
本公开提供的技术方案如下:
一种组件发布方法,包括:
针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系;
基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件;以及
在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布。
可选地,对所述第一组件子集中的各组件进行组件发布,包括:
按照并行方式或者串行方式,对所述第一组件子集中的各组件进行组件发布。
可选地,对所述第一组件子集中的各组件进行组件发布,包括以下中的至少之一:
将所述第一组件子集中各组件中依赖的组件的版本更新为最新版本;
将所述第一组件子集中各组件自身的版本更新为最新版本;
校验所述第一组件子集中的各组件是否可发布,并对通过校验的组件进行发布。
可选地,校验所述第一组件子集中的各组件是否可发布,包括以下至少之一:
通过对所述第一组件子集中各组件进行源码编译来校验所述第一组件子集中的各组件是否可发布;
校验所述第一组件子集中各组件中依赖的组件的版本是否已更新为最新版本;
校验所述第一组件子集中各组件自身的版本是否已更新为最新版本;
校验所述第一组件子集中各组件之间是否存在依赖关系。
可选地,所述方法还包括:
响应于所述组件集合中的组件均已成功发布,或者所述第一组件子集中出现发布失败的组件,停止对所述组件集合中的组件执行组件发布操作。
可选地,所述方法还包括:
在所述第一组件子集中的各组件均已发布成功后,响应于所述组件集合中还存在尚未发布的组件,继续将所述组件集合中的至少一个第二组件加入下一轮可发布的第二组件子集,以便在下一轮组件发布操作中,对所述第二组件子集中的各组件进行组件发布,
其中,所述至少一个第二组件在所述组件集合中的依赖组件均已发布。
可选地,获取所述组件集合中各组件之间的依赖关系,包括:
从各个组件对应的pod库描述文件,读取所述组件集合中各组件之间的依赖关系。
可选地,所述组件集合中的各组件属于同一工程的同一分支。
可选地,在所述本轮为第一轮的情况下,所述至少一个第一组件包括在所述组件集合中不存在对应的依赖组件的各组件;
在所述本轮为第N轮的情况下,所述至少一个第一组件包括在所述组件集合中存在对应的依赖组件且所述对应的依赖组件在所述第N轮之前已被发布出去的各组件,其中,N大于1。
一种组件发布装置,包括:
依赖关系获取单元,用于针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系;
组件添加单元,用于基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件;以及
组件发布单元,用于在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布。
一种计算机存储介质,所述计算机存储介质上存储有计算机可执行程序,所述计算机可执行程序被运行以实施根据本公开实施例中任一项所述的方法。
一种电子设备,所述电子设备包括存储器以及处理器,所述存储器上用于存储计算机可执行程序,所述处理器用于运行所述计算机可执行程序以实施根据本公开实施例中任一项所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开实施例中任一项所述的方法。
本公开实施例中,针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系;基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件;以及在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布,由此可以实现组件发布过程的自动化,避免了手动发布导致的开发效率低,另外,由于在发布上层组件时,其依赖的下层组件已经完成了发布,因此,避免了由于缺少下层组件而发布失败的情形。
附图说明
为了更清楚地说明本公开中的方案,下面将对本公开实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了本公开一实施例的组件发布方法的流程示意图。
图2示意性示出了本公开一实施例的组件发布方法的流程示意图。
图3示意性示出了本公开一实施例的一种组件发布装置的示意图。
图4示意性示出了本公开一实施例的一种电子设备的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开;本公开的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本公开的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本公开方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
本公开实施例中,针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系;基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件;以及在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布,由此可以实现组件发布过程的自动化,避免了手动发布导致的开发效率低,另外,由于在发布上层组件时,其依赖的下层组件已经完成了发布,因此,避免了由于缺少下层组件而发布失败的情形。
图1示意性示出了本公开一实施例的组件发布方法的流程示意图。如图1所示,其包括:
S101、针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系。
可选地,获取所述组件集合中各组件之间的依赖关系,包括:从各个组件对应的pod库描述文件,读取所述组件集合中各组件之间的依赖关系。
具体地,所述pod库描述文件可以为任意记录了组件之间的依赖关系的文件,比如在一具体应用场景中,所述pod库描述文件可以为pod库声明文件,在该pod库声明文件中包括有依赖关系描述,根据所述依赖关系描述,通过对依赖关系描述进行解析,从而获得组件之间的依赖关系。
具体地,所述pod库声明文件具体为CocoaPods工具中的podfile文件,在该podfile文件,其specification中的dependency列表中记录有组件之间的依赖关系。
示例性地,执行依赖关系指令pod dependency来获取所述组件集合中各组件的podfile文件,进而从中获取所述组件集合中各组件之间的依赖关系。
本实施例中,所述依赖关系包括直接依赖关系,以及间接依赖关系。比如,组件1依赖组件2,组件又依赖于组件3,则组件1与组件2的依赖关系为直接依赖关系,而组件2又依赖于组件3,组件2与组件3的依赖关系为直接依赖关系,组件1与组件3的依赖关系为间接依赖关系。此处,在获取上述依赖关系,按照单向确定即可,比如确定出组件1依赖于组件2,因此,无须确定组件2是否依赖于组件1,因此,进一步提高了依赖关系的确定速度和效率。
可选地,本实施例中,考虑到在一些应用场景中,同一工程的同一分支的多个组件一起配合以实现一个产品某一功能的开发,步骤S101中,所述组件集合中的各组件为属于同一工程的同一分支的组件。当然,如果同一工程下存在多个分支,则针对每个分支执行步骤S101,从而得到对应多个分支的待发布的组件集合。针对存在多个分支的情形,可以并行执行或者串行执行多个上述步骤S101。
S102、基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集。
本实施例中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件。
具体地,所述至少一个第一组件在所述组件集合中的依赖组件均已发布包括:其直接依赖的组件,以及其间接依赖的组件。
具体地,在所述本轮为第一轮的情况下,所述至少一个第一组件包括在所述组件集合中不存在对应的依赖组件的各组件;在所述本轮为第N轮的情况下,所述至少一个第一组件包括在所述组件集合中存在对应的依赖组件且所述对应的依赖组件在所述第N轮之前已被发布出去的各组件,其中,N大于1。
基于工程中的分支的话,针对所述至少一个第一组件在所述组件集合中的依赖组件均已发布,比如,对于其中一个组件来说,其在同一分支中的依赖组件已发布,以及其在其他不同分支中的依赖组件也已发布。针对在所述组件集合中不存在依赖组件,比如对于其中一个组件来说,其在同一分支中不存在依赖组件,以及在其他不同分支中也不存在依赖组件。
比如,在一应用场景中,在所述本轮为第一轮的情况下,所述至少一个第一组件包括在所述组件集合中不存在对应的依赖组件的各组件,比如组件1作为第一组件,在组件集合中,该组件1是首个要发布的组件,其不存在要依赖组件。在另一应用场景中,在所述本轮为第N轮的情况下,所述至少一个第一组件包括在所述组件集合中存在对应的依赖组件且所述对应的依赖组件在所述第N轮之前已被发布出去的各组件,比如,对于上述组件1依赖组件2、组件又依赖于组件3的情形,假如组件3作为第一组件,则在将组件1要加入到第一组件子集中要发布时,组件1、组件2均已发布。
S103、在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布。
示例性地,本实施例中,所述第一组件集包括的第一组件可以有多个,由于对于每个第一组件来说,在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件,因此,该多个第一组件之间相当于相互之间不存在依赖关系,因此,在执行步骤S103时,可以针对第一组件子集中的多个组件进行组件发布。具体地,对所述第一组件子集中的各组件进行组件发布时,可以按照并行方式或者串行方式,对所述第一组件子集中的各组件进行组件发布。
本实施例中,在按照并行方式发布组件时,以一次发布多个组件,从而提高组件发布的并发效率。而在按照串行方式发布组件时,完成一个附件的发布,再发布另外一个组件,从而可实现组件发布的无感知,或者又称之平滑发布。
可选地,对所述第一组件子集中的各组件进行组件发布,包括以下中的至少之一:
将所述第一组件子集中各组件中依赖的组件的版本更新为最新版本;
将所述第一组件子集中各组件自身的版本更新为最新版本;
校验所述第一组件子集中的各组件是否可发布,并对通过校验的组件进行发布。
具体地,对所述第一组件子集中的各组件进行组件发布时,可以根据应用场景来确定是选择其中之一还是多个上述操作。
当选择多个上述操作时,具体操作步骤之间的关系不做特别限定,可以是并行执行的方式,也可以串行执行的方式。
具体地,可以通过修改所述第一组件子集中各组件对应的pod库声明文件,从而实现将所述第一组件子集中各组件自身的版本、以及依赖的组件的版本更新为最新版本,从而保证在发布第一组件子集中的每个组件时,其自身的组件以及其依赖的组件的代码都是最新的,避免发布失败或者发布出去后导致无法正常使用。
可选地,校验所述第一组件子集中的各组件是否可发布,包括以下至少之一:
通过对所述第一组件子集中各组件进行源码编译来校验所述第一组件子集中的各组件是否可发布;
校验所述第一组件子集中各组件中依赖的组件的版本是否已更新为最新版本;
校验所述第一组件子集中各组件自身的版本是否已更新为最新版本;
校验所述第一组件子集中各组件之间是否存在依赖关系。
具体地,对所述第一组件子集中的各组件进行校验时,可以根据应用场景来确定是选择其中之一还是多个上述操作。
当选择多个上述操作时,具体操作步骤之间的关系不做特别限定,可以是并行执行的方式,也可以串行执行的方式。
本实施例中,通过校验所述第一组件子集中各组件自身的版本以及各组件中依赖的组件的版本是否已更新为最新版本,一旦校验失败,则对对应的组件进行错误排查以及纠错处理,以重新进行发布,从而避免由于组件的版本出现错误导致组件发布失败的情形。
具体地,通过对所述第一组件子集中各组件进行源码编译来校验所述第一组件子集中的各组件是否可发布,比如通过装载所述第一组件子集中各组件的pod声明文件来进行源码编译以校验所述第一组件子集中的各组件是否可发布,从而保证各组件发布时避免由于组件存在代码错误而导致的组件发布失败的情形。
具体地,校验所述第一组件子集中各组件自身的版本以及各组件中依赖的组件的版本是否已更新为最新版本,可以通过解析各组件对应的pod声明文件以实现,比如,如果pod声明文件中记录的版本号为最新版本号,则各组件自身的版本以及各组件中依赖的组件的版本为最新版本。
具体地,校验所述第一组件子集中各组件之间是否存在依赖关系,也可以通过解析各组件对应的pod声明文件,查看该pod声明文件的specification中的dependency列表记录的组件名称,将出现在该dependency列表中的组件名称对应的组件,则认为存在依赖关系,否则,则认为不存在依赖关系,从而避免了在发布时参与发布的各个组件由于存在依赖关系而导致发布失败的情形。
示例性地,在一具体应用场景中,可以通过执行pod lib lint命令来启动上述校验所述第一组件子集中的各组件是否可发布的步骤。
在上述校验中,针对未通过校验的组件生成错误报告信息,以根据所述错误报告进行错误排查以及纠错,以重新进行发布。
具体地,所述错误报告信息可以包括:错误类型、组件名以及组件开发记录,所述错误类型包括未编译成功、版本为非最新版本中至少其一,组件开发记录包括组件的开发人员标识等,从而通知对应的开发人员未通过校验的组件,参考错误类型进行纠错处理。
可选地,所述方法还可以包括:响应于所述组件集合中的组件均已成功发布,或者所述第一组件子集中出现发布失败的组件,停止对所述组件集合中的组件执行组件发布操作。
类似地,针对成功失败的组件生成错误报告信息(类似上述校验失败时的错误报告信息),以根据所述错误报告进行错误排查以及纠错,以重新进行发布。
本实施例中,所述第一组件子集中出现发布失败的组件,停止对所述组件集合中的组件执行组件发布操作之后,针对发布失败的组件再次进行发布时,如果其对应的本轮为第一轮的情况下,所述直接重新发布即可;如果其对应的本轮为第N轮的情况下,则重新发布从第一轮到第N轮所有的组件,从而保证发布后的组件均是正确的组件,比如都是版本最新的组件,对应代码不存在编译错误的组件等。
比如,以组件集合包括组件1、组件2、组件3为例,而组件1依赖组件2、组件又依赖于组件3,为此,在第一轮发布时,完成组件1的发布,由于组件1是组件2的依赖组件,且通过第一轮完成了发布,此时组件集合中还存在未发布的组件2和3,但是,由于组件3直接依赖组件2,组件3间接依赖组件1,虽然组件1完成了发布,但是,组件2还没发布,因此,可以将组件2加入下一轮发布,以进行发布。但是一旦组件2在发布时失败,则停止对所述组件集合中的组件3执行组件发布操作,在针对组件2进行纠错后依次重新发布组件1、组件2,当组件2发布成功后,再发布组件3。
进一步地,在一些实施例中,由于组件之间的依赖关系整体来看是树状结构,因此,所述方法还包括:在所述第一组件子集中的各组件均已发布成功后,响应于所述组件集合中还存在尚未发布的组件,继续将所述组件集合中的至少一个第二组件加入下一轮可发布的第二组件子集,以便在下一轮组件发布操作中,对所述第二组件子集中的各组件进行组件发布。
其中,所述至少一个第二组件在所述组件集合中的依赖组件均已发布。
比如,以组件集合包括组件1、组件2、组件3为例,而组件1依赖组件2、组件又依赖于组件3,为此,在第一轮发布时,完成组件1的发布,由于组件1是组件2的依赖组件,且通过第一轮完成了发布,此时组件集合中还存在未发布的组件2和3,但是,由于组件3直接依赖组件2,组件3间接依赖组件1,虽然组件1完成了发布,但是,组件2还没发布,因此,可以将组件2加入下一轮发布,以进行发布。在完成组件1、2的发布后,相当于完成了组件3直接依赖的组件(组件2)的发布,以及间接依赖的组件(组件1)的发布,而针对还未发布的组件3,可以将组件加入再下一轮发布,以进行发布。当三个组件均已发布后,则相当于完成了该组件集合中所有组件的发布。
具体地,在一应用场景中,可以通过运行发布指令release pod发布所述组件,并将成功发布的组件的状态更改为已发布。
进一步,还可以执行pod repo push指令将发布代码同步到服务端。
可选地,在上述实施例中,当完成组件集合中所有组件的发布后,判断发布的组件是否又有了代码更新,若没有,则将发布的组件更新到所在的工程中。
图2示意性示出了本公开一实施例的组件发布方法的流程示意图。如图2所示,针对同一个工程中任一分支的组件执行,其包括:
S201、拉取同一工程中同一分支的多个组件,以作为待发布的组件集合。
S202、执行依赖关系指令pod dependency获取所述组件集合中各组件的podfile文件,进而从中获取所述组件集合中各组件之间的依赖关系。
遍历所述待发布集合中的每个组件,以执行如下操作发布的操作:
S203、基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集。
S204、在本轮组件发布操作中,运行发布指令release pod对所述第一组件子集中的各组件进行组件发布。
S205、判断所述组件集合是否还存在尚未发布的组件。
若是,则执行步骤S206:将所述组件集合中的至少一个第二组件加入下一轮可发布的第二组件子集。
若否,则执行步骤S209。
S207、运行发布指令release pod对所述第二组件子集中的各组件进行组件发布。
步骤S208、响应于在上述步骤S203、S207中出现发布失败的组件,则生成错误报告消息结束发布,并在发布失败的组件被纠错后重新加入到所述组件集合中,以重新进行发布。
重复执行上述步骤S203-S207,直至所述组件集中的所有组件均已成功发布。
步骤S209、响应于所述组件集合中的所有组件均已成功发布,则停止对所述组件集合中的组件执行组件发布操作。
图3示意性示出了本公开一实施例的一种组件发布装置的示意图。如图3所示,组件发布装置300包括:
依赖关系获取单元301,用于针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系。
组件添加单元302,用于基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件。
组件发布单元303,用于在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布。
可选地,对所述第一组件子集中的各组件进行组件发布,包括:
按照并行方式或者串行方式,对所述第一组件子集中的各组件进行组件发布。
可选地,对所述第一组件子集中的各组件进行组件发布,包括以下中的至少之一:
将所述第一组件子集中各组件中依赖的组件的版本更新为最新版本;
将所述第一组件子集中各组件自身的版本更新为最新版本;
校验所述第一组件子集中的各组件是否可发布,并对通过校验的组件进行发布。
可选地,校验所述第一组件子集中的各组件是否可发布,包括以下至少之一:
通过对所述第一组件子集中各组件进行源码编译来校验所述第一组件子集中的各组件是否可发布;
校验所述第一组件子集中各组件中依赖的组件的版本是否已更新为最新版本;
校验所述第一组件子集中各组件自身的版本是否已更新为最新版本;
校验所述第一组件子集中各组件之间是否存在依赖关系。
可选地,所述方法还包括:
响应于所述组件集合中的组件均已成功发布,或者所述第一组件子集中出现发布失败的组件,停止对所述组件集合中的组件执行组件发布操作。
可选地,所述方法还包括:
在所述第一组件子集中的各组件均已发布成功后,响应于所述组件集合中还存在尚未发布的组件,继续将所述组件集合中的至少一个第二组件加入下一轮可发布的第二组件子集,以便在下一轮组件发布操作中,对所述第二组件子集中的各组件进行组件发布,
其中,所述至少一个第二组件在所述组件集合中的依赖组件均已发布。
可选地,获取所述组件集合中各组件之间的依赖关系,包括:
从各个组件对应的pod库描述文件,读取所述组件集合中各组件之间的依赖关系。
可选地,所述组件集合中的各组件属于同一工程的同一分支。
可选地,在所述本轮为第一轮的情况下,所述至少一个第一组件包括在所述组件集合中不存在对应的依赖组件的各组件;
在所述本轮为第N轮的情况下,所述至少一个第一组件包括在所述组件集合中存在对应的依赖组件且所述对应的依赖组件在所述第N轮之前已被发布出去的各组件,其中,N大于1。
图4示意性示出了本公开一实施例的一种电子设备的结构示意图。如图4所示,所述电子设备400包括存储器401以及处理器402,所述存储器上用于存储计算机可执行程序,所述处理器用于运行所述计算机可执行程序以实施根据本公开实施例中任一项所述的方法。
一种计算机存储介质,所述计算机存储介质上存储有计算机可执行程序,所述计算机可执行程序被运行以实施根据本公开实施例中任一项所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开实施例中任一项所述的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例,附图中给出了本公开的较佳实施例,但并不限制本公开的专利范围。本公开可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本公开的公开内容的理解更加透彻全面。尽管参照前述实施例对本公开进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本公开说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本公开专利保护范围之内。
Claims (13)
1.一种组件发布方法,包括:
针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系;
基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件;以及
在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布。
2.根据权利要求1所述的方法,其特征在于,对所述第一组件子集中的各组件进行组件发布,包括:
按照并行方式或者串行方式,对所述第一组件子集中的各组件进行组件发布。
3.根据权利要求1所述的方法,其特征在于,对所述第一组件子集中的各组件进行组件发布,包括以下中的至少之一:
将所述第一组件子集中各组件中依赖的组件的版本更新为最新版本;
将所述第一组件子集中各组件自身的版本更新为最新版本;
校验所述第一组件子集中的各组件是否可发布,并对通过校验的组件进行发布。
4.根据权利要求3所述的方法,其特征在于,校验所述第一组件子集中的各组件是否可发布,包括以下至少之一:
通过对所述第一组件子集中各组件进行源码编译来校验所述第一组件子集中的各组件是否可发布;
校验所述第一组件子集中各组件中依赖的组件的版本是否已更新为最新版本;
校验所述第一组件子集中各组件自身的版本是否已更新为最新版本;
校验所述第一组件子集中各组件之间是否存在依赖关系。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述组件集合中的组件均已成功发布,或者所述第一组件子集中出现发布失败的组件,停止对所述组件集合中的组件执行组件发布操作。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一组件子集中的各组件均已发布成功后,响应于所述组件集合中还存在尚未发布的组件,继续将所述组件集合中的至少一个第二组件加入下一轮可发布的第二组件子集,以便在下一轮组件发布操作中,对所述第二组件子集中的各组件进行组件发布,
其中,所述至少一个第二组件在所述组件集合中的依赖组件均已发布。
7.根据权利要求1所述的方法,其特征在于,获取所述组件集合中各组件之间的依赖关系,包括:
从各个组件对应的pod库描述文件,读取所述组件集合中各组件之间的依赖关系。
8.根据权利要求1所述的方法,其特征在于,所述组件集合中的各组件属于同一工程的同一分支。
9.根据权利要求1所述的方法,其特征在于:
在所述本轮为第一轮的情况下,所述至少一个第一组件包括在所述组件集合中不存在对应的依赖组件的各组件;
在所述本轮为第N轮的情况下,所述至少一个第一组件包括在所述组件集合中存在对应的依赖组件且所述对应的依赖组件在所述第N轮之前已被发布出去的各组件,其中,N大于1。
10.一种组件发布装置,包括:
依赖关系获取单元,用于针对待发布的组件集合,获取所述组件集合中各组件之间的依赖关系;
组件添加单元,用于基于所述依赖关系,将所述组件集合中的至少一个第一组件加入本轮可发布的第一组件子集,其中,所述至少一个第一组件在所述组件集合中的依赖组件均已发布,或者在所述组件集合中不存在依赖组件;以及
组件发布单元,用于在本轮组件发布操作中,对所述第一组件子集中的各组件进行组件发布。
11.一种计算机存储介质,所述计算机存储介质上存储有计算机可执行程序,所述计算机可执行程序被运行以实施根据权利要求1-9中任一项所述的方法。
12.一种电子设备,所述电子设备包括存储器以及处理器,所述存储器上用于存储计算机可执行程序,所述处理器用于运行所述计算机可执行程序以实施根据权利要求1-9中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111615245.1A CN114327595A (zh) | 2021-12-27 | 2021-12-27 | 组件发布方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111615245.1A CN114327595A (zh) | 2021-12-27 | 2021-12-27 | 组件发布方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327595A true CN114327595A (zh) | 2022-04-12 |
Family
ID=81012315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111615245.1A Pending CN114327595A (zh) | 2021-12-27 | 2021-12-27 | 组件发布方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327595A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196877A (zh) * | 2018-01-16 | 2018-06-22 | 北京三快在线科技有限公司 | 组件发布管理的方法和装置以及计算设备 |
CN110764776A (zh) * | 2019-09-24 | 2020-02-07 | 中信百信银行股份有限公司 | 依赖组件管控方法和装置 |
CN112835584A (zh) * | 2021-01-13 | 2021-05-25 | 普元信息技术股份有限公司 | 基于ReactNative实现组件扩展和管理的方法 |
CN112860250A (zh) * | 2021-03-12 | 2021-05-28 | 中国平安财产保险股份有限公司 | 前端物料发布方法、装置、设备及存储介质 |
US11163559B1 (en) * | 2020-12-28 | 2021-11-02 | Temper Systems, Inc. | Cross-publishing software libraries to module repositories |
CN113821486A (zh) * | 2021-11-22 | 2021-12-21 | 北京金堤科技有限公司 | pod库之间依赖关系的确定方法及其装置、电子设备 |
-
2021
- 2021-12-27 CN CN202111615245.1A patent/CN114327595A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196877A (zh) * | 2018-01-16 | 2018-06-22 | 北京三快在线科技有限公司 | 组件发布管理的方法和装置以及计算设备 |
CN110764776A (zh) * | 2019-09-24 | 2020-02-07 | 中信百信银行股份有限公司 | 依赖组件管控方法和装置 |
US11163559B1 (en) * | 2020-12-28 | 2021-11-02 | Temper Systems, Inc. | Cross-publishing software libraries to module repositories |
CN112835584A (zh) * | 2021-01-13 | 2021-05-25 | 普元信息技术股份有限公司 | 基于ReactNative实现组件扩展和管理的方法 |
CN112860250A (zh) * | 2021-03-12 | 2021-05-28 | 中国平安财产保险股份有限公司 | 前端物料发布方法、装置、设备及存储介质 |
CN113821486A (zh) * | 2021-11-22 | 2021-12-21 | 北京金堤科技有限公司 | pod库之间依赖关系的确定方法及其装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160048391A1 (en) | Systems and methods for incremental software development | |
US9063819B2 (en) | Extensible patch management | |
US11748245B2 (en) | Object-oriented regression-candidate filter | |
US8954949B2 (en) | Smart patch delivery system | |
CN110321131B (zh) | 业务组件打包方法、系统及服务器 | |
CN109542415B (zh) | 支持应用程序并行研发的代码合并方法及相关设备 | |
US10579513B2 (en) | Test run control method and apparatus | |
US9317254B1 (en) | Fault tolerance model, methods, and apparatuses and their validation techniques | |
CN111414169B (zh) | Bmc镜像升级方法及相关组件 | |
CN109977008B (zh) | 一种应用程序依赖的js代码与原生库兼容的方法及终端 | |
CN111967017A (zh) | 生成依赖关系的方法、装置、终端设备及存储介质 | |
US20210089297A1 (en) | Automated check for ticket status of merged code | |
US10896109B2 (en) | Non-monotonic eventual convergence for desired state configuration | |
CN106909434B (zh) | 可执行程序中未定义函数的检测方法及装置 | |
CN114327595A (zh) | 组件发布方法、装置、设备及存储介质 | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN113791809B (zh) | 应用异常处理方法、装置以及计算机可读存储介质 | |
CN113918162A (zh) | 一种基于集中式管理模式下的前端代码自动化校验方法 | |
CN114003250A (zh) | 一种软件部署方法及装置 | |
CN110737429A (zh) | 一种利用Makefile自身的依赖关系的模块化编译方法和装置 | |
CN111143229A (zh) | 软件测试方法及装置、计算机设备及计算机可读存储介质 | |
CN112631650A (zh) | 插件版本信息校验方法、计算设备及存储介质 | |
CN113760340B (zh) | 一种应用于Linux系统的热补丁方法和装置 | |
CN118035072A (zh) | 一种基于多版本升级的自动验收的方法及系统 | |
CN114721682A (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 |