CN113098961A - 组件上传方法、装置、系统、计算机设备及可读存储介质 - Google Patents

组件上传方法、装置、系统、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN113098961A
CN113098961A CN202110352168.9A CN202110352168A CN113098961A CN 113098961 A CN113098961 A CN 113098961A CN 202110352168 A CN202110352168 A CN 202110352168A CN 113098961 A CN113098961 A CN 113098961A
Authority
CN
China
Prior art keywords
component
target application
uploading
configuration file
code
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.)
Granted
Application number
CN202110352168.9A
Other languages
English (en)
Other versions
CN113098961B (zh
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.)
Beijing Ziroom Information Technology Co Ltd
Original Assignee
Beijing Ziroom Information Technology 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 Beijing Ziroom Information Technology Co Ltd filed Critical Beijing Ziroom Information Technology Co Ltd
Priority to CN202110352168.9A priority Critical patent/CN113098961B/zh
Publication of CN113098961A publication Critical patent/CN113098961A/zh
Application granted granted Critical
Publication of CN113098961B publication Critical patent/CN113098961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及通信技术领域,公开了一种组件上传方法、装置、系统、计算机设备及可读存储介质。其中,该方法包括:获取目标应用标识,利用目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,应用配置文件中包含有目标应用与所述至少一个组件的依赖关系;基于至少一个组件,分别得到与至少一个组件相对应的至少一个组件代码;基于组件代码,对目标应用对应的至少一个组件进行打包上传。通过实施本发明,实现了目标应用与至少一个组件的单独管理,避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。

Description

组件上传方法、装置、系统、计算机设备及可读存储介质
技术领域
本发明涉及通信技术领域,具体涉及一种组件上传方法、装置、系统、计算机设备及可读存储介质。
背景技术
随着通信技术的发展,各种系统电子设备的更新迭代速度越来越快,通产一个电子设备的工程中包含有一个主工程和若干个子工程,主工程可以通过各种配置文件拉取引用工程。例如,Android端工程的一个主工程会引用多个其他子工程,而其他子工程通常会打包成aar/jar/so等格式放到远端服务器上,Android端工程则可以通过配置文件,从远端服务器拉取其需要引用的子工程。
然而子工程在打包成aar包上传到maven服务器后,需要主工程修改项目配置文件,才能够引用上传到maven服务器的aar包。随着子工程的增多,打包子工程上传maven服务器耗时费力,且开发过程中通常采用本地引用方式,待到主工程与子工程进行集成时,采用脚本扫描各个子工程的变更情况,对有变更的子工程打包成aar包上传maven服务器,主工程通过配置文件直接拉取maven服务器上最新aar包,但是若子工程为多人同时开发,那么配置文件则会被频繁修改,这就可能导致相同行的代码修改造成合并冲突。
发明内容
有鉴于此,本发明实施例提供了一种组件上传方法、装置、系统、计算机设备及可读存储介质,以解决修改应用配置文件而导致上传组件存在合并冲突的问题。
根据第一方面,本发明实施例提供了一种组件上传方法,包括如下步骤:获取目标应用标识,利用所述目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,所述应用配置文件中包含有所述目标应用与所述至少一个组件的依赖关系;基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码;基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传。
本发明实施例提供的组件上传方法,通过在应用配置文件中构建目标应用与至少一个组件的映射关系,利用目标应用标识确定与其对应的目标应用,进而从配置文件中确定出与目标应用对应的至少一个组件,之后可以基于至少一个组件得到分别与至少一个组件相对应的至少一个组件代码,基于得到的至少一个组件代码对目标应用对应的至少一个组件进行打包上传。由此,该方法实现了目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可,在组件开发完成后进行打包上传,由此避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。
结合第一方面,在第一方面的第一实施方式中,所述基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码,包括:基于所述至少一个组件,确定出与所述至少一个组件相对应的至少一个组件代码地址;通过所述至少一个组件代码地址,拉取与所述至少一个组件代码地址相对应的至少一个组件代码。
本发明实施例提供的组件上传方法,基于目标应用对应的至少一个组件分别确定与至少一个组件相对应的组件代码地址,通过组件代码地址拉取与组件相对应的组件代码,由此避免了全部组件统一打包而导致的组件遗漏或组件打包不成功的问题,保证了目标应用对应的各个组件均能被正确打包,从而提高了组件打包的成功率。
结合第一方面,在第一方面的第二实施方式中,所述基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传,包括:遍历所述目标应用所依赖的至少一个组件,确定所述至少一个组件之间的依赖顺序;基于所述至少一个组件对应的组件代码以及所述依赖顺序,依次将所述至少一个组件进行打包成目标格式的组件文件;上传所述至少一个组件对应的所述目标格式的组件文件。
结合第一方面第二实施方式,在第一方面的第三实施方式中,所述遍历所述目标应用所依赖的至少一个组件,确定所述至少一个组件之间的依赖顺序,包括:获取所述至少一个组件对应的标识符,确定所述标识符对应的组件配置信息;基于所述组件配置信息,对所述至少一个组件进行遍历分析,确定所述至少一个组件之间的依赖顺序。
本发明实施例提供的组件上传方法,通过至少一个组件对应的标识符对各个组件的组件配置信息进行依赖分析以确定至少一个组件之间的依赖顺序,并基于各个组件对应的组件代码以及依赖顺序将各个组件依次打包成目标格式的组件文件进行上传。该方法通过根据目标应用对应的各个组件之间的依赖顺序进行打包上传,保证了目标应用对应的各个组件能够按照正确的顺序进行打包,从而保证了目标格式的组件文件上传顺序的准确度,进一步保证了组件文件的集成成功率。
结合第一方面第二实施方式,在第一方面的第四实施方式中,所述基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传,包括:获取所述至少一个组件对应的特性分支和开发分支;判断所述至少一个组件对应的所述特性分支和所述开发分支之间是否存在差异;当所述特性分支和所述开发分支存在差异时,对存在差异的至少一个组件进行打包上传。
结合第一方面第四实施方式,在第一方面的第五实施方式中,还包括:当所述特性分支和所述开发分支不存在差异时,将不存在差异的至少一个组件的所述开发分支所对应的组件文件拷贝至所述特性分支所在路径。
本发明实施例提供的组件上传方法,通过对比至少一个组件对应的特性分支和开发分支之间是否存在差异,当特性分支和开发分支存在差异时,对存在差异的至少一个组件进行打包上传;当特性分支和开发分支不存在差异时,将不存在差异的至少一个组件的开发分支所对应的组件文件拷贝至所述特性分支所在路径。由此大大缩减了目标应用全部组件的上传时间。
根据第二方面,本发明实施例提供了一种组件上传装置,包括:获取模块,用于获取目标应用标识,利用所述目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,所述应用配置文件中包含有所述目标应用与所述至少一个组件的映射关系;确定模块,用于基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码;上传模块,用于基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传。
本发明实施例提供的组件上传装置,通过在应用配置文件中构建目标应用与至少一个组件的映射关系,利用目标应用标识确定与其对应的目标应用,进而从配置文件中确定出与目标应用对应的至少一个组件,之后可以基于至少一个组件得到分别与至少一个组件相对应的至少一个组件代码,基于得到的至少一个组件代码对目标应用对应的至少一个组件进行打包上传。由此实现了目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可,在组件开发完成后进行打包上传,由此避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。
根据第三方面,本发明实施例提供了一种组件上传系统,包括:组件管理单元,用于构建目标应用以及所述目标应用对应的至少一个组件的应用配置文件,通过所述应用配置文件对所述目标应用及其至少一个组件行单独管理;集成单元,与所述组件管理单元通信连接,基于获取的目标应用标识,从所述组件管理单元的所述应用配置文件中拉取与所述目标应用标识对应的至少一个组件;基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码;基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传;服务器,与所述集成单元通信连接,用于接收所述集成单元上传的至少一个组件,并向所述集成单元返回组件上传结果。
本发明实施例提供的组件上传系统包括:应用管理单元、集成单元和服务器。其中,组件管理单元用于构建目标应用以及所述目标应用对应的至少一个组件的应用配置文件,通过所述应用配置文件对所述目标应用及其至少一个组件行单独管理;集成单元与组件管理单元通信连接,用于根据目标应用标识从组件管理单元的所述应用配置文件中拉取与目标应用对应的至少一个组件,并对目标应用对应的至少一个组件进行打包上传;服务器与集成单元通信连接,用于接收集成单元上传的至少一个组件,并向集成单元返回组件上传结果。该系统实现了目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可,在组件开发完成后进行打包上传,由此避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。
根据第四方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式所述的组件上传方法。
根据第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面或第一方面任一实施方式所述的组件上传方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的组件上传方法的流程图;
图2是根据本发明实施例的组件上传方法的另一流程图;
图3是根据本发明实施例的组件上传方法的另一流程图;
图4是根据本发明实施例的组件上传装置的结构框图;
图5是根据本发明实施例的组件上传系统的结构框图;
图6是本发明实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通常,子工程在打包成aar包上传到maven服务器后,需要主工程修改项目配置文件,才能够引用上传到maven服务器的aar包。随着子工程的增多,打包子工程上传maven服务器耗时费力,且开发过程中通常采用本地引用方式,待到主工程与子工程进行集成时,采用脚本扫描各个子工程的变更情况,对有变更的子工程打包成aar包上传maven服务器,主工程通过配置文件直接拉取maven服务器上最新aar包,但是若子工程为多人同时开发,那么配置文件则会被频繁修改,这就可能导致相同行的代码修改造成合并冲突。
基于此,本发明技术方案通过在应用配置文件中构建目标应用与至少一个组件的映射关系,以实现目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可。
根据本发明实施例,提供了一种组件上传方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种组件上传方法,可用于计算机设备,如电脑、服务器等,图1是根据本发明实施例的组件上传方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取目标应用标识,利用目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,应用配置文件中包含有目标应用与至少一个组件的依赖关系。
应用配置文件为目标应用对应的应用信息,应用信息的字段中记录有目标应用与其相关组件的依赖关系。该应用配置文件可以提供组件及应用信息的添加、查询、删除及修改,目标应用的前端页面可以通过调用服务器端接口对组件及应用信息进行添加、删除及修改操作,服务端程序则会将这些信息保存到数据库中,由此实现对目标应用及其组件的单独管理。
目标应用标识为应用程序对应的标识号appID,为了区别不同的目标应用,各个目标应用对应的标识号appID都是唯一的。一个目标应用对应有至少一个组件,计算机设备可以通过接口调用应用配置文件,从应用配置文件中获取到标识号appID对应的目标应用所依赖的至少一个组件。
具体地,应用配置文件所在的组件管理单元可以对外提供接口,计算机设备中布置有脚本文件,脚本文件可以根据计算机设备获取到将标识号appID调用组件管理单元的接口,从组件管理单元的应用配置文件中获取与标识号appID所对应的应用的组件列表。
S12,基于至少一个组件,分别得到与至少一个组件相对应的至少一个组件代码。
计算机设备对其获取到的至少一个组件对应的组件信息进行解析,基于组件信息的解析结果,获取对应于各个组件的组件代码。具体地,计算机设备可以根据组件信息从代码服务器(gitlab)中拉取组件代码。
S13,基于组件代码,对目标应用对应的至少一个组件进行打包上传。
在获取到各个组件对应的组件代码后,对于每个组件分别执行对应于组件的打包上传命令,由此将各个组件打包并上传。例如,执行组件的gradle uploadAchive命令,将组件打包为aar格式文件,上传到maven服务器,循环执行该打包上传流程将目标应用对应的所有组件全部上传到maven服务器。
本实施例提供的组件上传方法,通过在应用配置文件中构建目标应用与至少一个组件的映射关系,利用目标应用标识确定与其对应的目标应用,进而从配置文件中确定出与目标应用对应的至少一个组件,之后可以基于至少一个组件得到分别与至少一个组件相对应的至少一个组件代码,基于得到的至少一个组件代码对目标应用对应的至少一个组件进行打包上传。由此,该方法实现了目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可,在组件开发完成后进行打包上传,由此避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。
在本实施例中提供了一种组件上传方法,可用于计算机设备,如电脑、服务器等,图2是根据本发明实施例的组件上传方法的流程图,如图2所示,该流程包括如下步骤:
S21,获取目标应用标识,利用目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中应用配置文件中包含有目标应用与至少一个组件的映射关系。详细说明参见上述实施例对应步骤S11的相关描述,此处不再赘述。
S22,基于至少一个组件,分别得到与至少一个组件相对应的至少一个组件代码。
具体地,上述步骤S22可以包括如下步骤:
S221,基于至少一个组件,确定出与至少一个组件相对应的至少一个组件代码地址。
组件对应的组件信息中包含有组件对应的代码地址,计算机设备通过解析至少一个组件对应的组件信息,可以分别获取各个组件信息中包含的各个组件代码地址。例如,一目标应用对应有5个组件,计算机设备在获取到该目标应用的5个组件后,可以对这5个组件对应的组件信息进行解析,分别确定出5个组件对应的5个组件代码地址。
S222,通过至少一个组件代码地址,拉取与至少一个组件代码地址相对应的至少一个组件代码。
基于获取的组件代码地址,从代码服务器(gitlab)中拉取对应于该组件代码地址的组件代码。例如,5个组件对应有5个组件代码地址,计算机设备则基于5个组件代码地址分别拉取与其对应的组件代码,由此即可确定出各个组件对应的组件代码。
S23,基于组件代码,对目标应用对应的至少一个组件进行打包上传。
具体地,上述步骤S23可以包括如下步骤:
S231,遍历目标应用对应的至少一个组件,确定至少一个组件之间的依赖顺序。
对目标应用对应的至少一个组件进行遍历,以确定目标应用对应的各个组件之间是否存在依赖关系,具体地,若组件之间存在依赖关系,则在其上层组件的build.gradle文件添加依赖代码,通过遍历各个build.gradle文件,即可确定组件之间是否存在依赖关系。对存在依赖关系的多个组件,为了保证各个组件的打包上传顺序与各个组件的依赖顺序相匹配,因此需要确定存在依赖关系的多个组件之间的依赖顺序。
具体地,上述步骤S231可以包括如下步骤:
(1)获取至少一个组件对应的标识符,确定标识符对应的组件配置信息。
标识符用于表征当前组件是否与其他组件存在依赖关系。对于具有依赖关系的各个组件的引用加标识符,例如特殊字符标识(“$(ZR”前缀)。计算机设备通过遍历各个组件对应的标识符即可确定出具有依赖关系的各个组件,并获取具有依赖关系的各个组件的配置信息,例如build.gradle。
(2)基于组件配置信息,对至少一个组件进行遍历分析,确定至少一个组件之间的依赖顺序。
计算机设备对具有依赖关系的各个组件的配置信息进行遍历分析,确定出各个组件之间由底层到上层的依赖顺序。例如,遍历分析各个组件的配置信息build.gradle,确定出各个组件由底层到上层的依赖顺序。
S232,基于至少一个组件对应的组件代码以及依赖顺序,依次将至少一个组件进行打包成目标格式的组件文件。
对于具有依赖关系的多个组件,若当前组件所依赖的上层组件没有提前打包上传,则将会导致当前组件打包失败。因此,需要基于各个组件的依赖顺序对各个组件依次打包上传,即按照各个组件的依赖顺序依次拉取组件对应的组件代码,执行相应的打包上传指令依次将各个组件打包为目标格式的组件文件进行上传。具体地,按照依赖顺序从代码服务器中依次获取各个组件对应的组件代码,执行gradle uploadAchive命令,将组件打包为aar格式的组件文件进行上传。
S233,上传至少一个组件对应的目标格式的组件文件。
计算机设备按照依赖顺序循环执行组件的打包上传流程,将目标应用对应的所有组件全部上传到对应的服务器,例如,maven服务器。
本实施例提供的组件上传方法,基于目标应用对应的至少一个组件分别确定与至少一个组件相对应的组件代码地址,通过组件代码地址拉取与组件相对应的组件代码,由此避免了全部组件统一打包而导致的组件遗漏或组件打包不成功的问题,保证了目标应用对应的各个组件均能被正确打包,从而提高了组件打包的成功率。通过至少一个组件对应的标识符对各个组件的组件配置信息进行依赖分析以确定至少一个组件之间的依赖顺序,并基于各个组件对应的组件代码以及依赖顺序将各个组件依次打包成目标格式的组件文件进行上传。该方法通过根据目标应用对应的各个组件之间的依赖顺序进行打包上传,保证了目标应用对应的各个组件能够按照正确的顺序进行打包,从而保证了目标格式的组件文件上传顺序的准确度,进一步保证了组件文件的集成成功率。
在本实施例中提供了一种组件上传方法,可用于计算机设备,如电脑、服务器等,图3是根据本发明实施例的组件上传方法的流程图,如图3所示,该流程包括如下步骤:
S31,获取目标应用标识,利用目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中应用配置文件中包含有目标应用与至少一个组件的映射关系。详细说明参见上述实施例对应步骤S21的相关描述,此处不再赘述。
S32,基于至少一个组件,分别得到与至少一个组件相对应的至少一个组件代码。详细说明参见上述实施例对应步骤S22的相关描述,此处不再赘述。
S33,基于组件代码,对目标应用对应的至少一个组件进行打包上传。
具体地,上述步骤S23可以包括如下步骤:
S331,获取至少一个组件对应的特性分支和开发分支。
特性分支为组件要实现特定需求或功能所创建的分支,开发分支为开发组件需求或功能的过程中所创建的分支。在遍历目标应用所依赖的至少一个组件的同时,获取各个组件对应的特性分支和开发分支。
S332,判断至少一个组件对应的特性分支和开发分支之间是否存在差异。
对至少一个组件对应的特性分支和开发分支进行对比,确定特性分支和开发分支两者之间是否存在差异。当特性分支和开发分支存在差异时,执行步骤S333,否则执行步骤S334。
S333,对存在差异的至少一个组件进行打包上传。
当组件的特性分支和开发分支存在差异时,表示当前组件的需求或功能已经被重新开发,即当前组件对应的代码已经发生变化,此时则需要对存在差异的至少一个组件进行打包上传。对于打包上传的详细说明参见上述实施例对应的相关描述,此处不再赘述。
S334,将不存在差异的至少一个组件的开发分支所对应的组件文件拷贝至特性分支所在路径。
当组件的特性分支和开发分支不存在差异时,表示当前组件的需求或功能并未重新开发,即当前组件对应的代码并未发生变化,此时可以直接使用当前组件对应的目标格式的组件文件,直接将不存在差异的各个组件的开发分支所对应的组件文件拷贝至特性分支所在路径即可。
例如,当组件的特性分支和开发分支不存在差异时,可以直接使用已经打包上传至maven服务器中的对应于该组件的aar包,并将该组件的aar包从开发分支对应的路径拷贝到特性分支所在的路径。
本实施例提供的组件上传方法,通过对比至少一个组件对应的特性分支和开发分支之间是否存在差异,当特性分支和开发分支存在差异时,对存在差异的至少一个组件进行打包上传;当特性分支和开发分支不存在差异时,将不存在差异的至少一个组件的开发分支所对应的组件文件拷贝至所述特性分支所在路径。由此大大缩减了目标应用全部组件的上传时间。
在本实施例中还提供了一种组件上传装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种组件上传装置,如图4所示,包括:
获取模块41,用于获取目标应用标识,利用目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,应用配置文件中包含有目标应用与至少一个组件的依赖关系。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
确定模块42,用于基于至少一个组件,分别得到与至少一个组件相对应的至少一个组件代码。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
上传模块43,用于基于组件代码,对目标应用对应的至少一个组件进行打包上传。详细说明参见上述方法实施例对应的相关描述,此处不再赘述。
本实施例提供的组件上传装置,通过在应用配置文件中构建目标应用与至少一个组件的映射关系,利用目标应用标识确定与其对应的目标应用,进而从配置文件中确定出与目标应用对应的至少一个组件,之后可以基于至少一个组件得到分别与至少一个组件相对应的至少一个组件代码,基于得到的至少一个组件代码对目标应用对应的至少一个组件进行打包上传。由此实现了目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可,在组件开发完成后进行打包上传,由此避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。
本实施例中的组件上传装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种组件上传系统,如图5所示,该组件上传系统包括:组件管理单元51、集成单元52和服务器53。组件管理单元51、集成单元52和服务器53之间通信连接,组件管理单元51可以为方舟系统,集成单元52可以为jenkins持续集成服务器,服务器53可以为Maven服务器,本申请对组件管理单元、集成单元和服务器不作具体限定,本领域技术人员可以根据实际需要确定。
其中,组件管理单元51用于构建目标应用以及目标应用对应的至少一个组件的应用配置文件,通过应用配置文件对目标应用及其对应的至少一个组件行单独管理。组件管理单元51可以对外提供接口,以使其他单元可以调用组件管理单元51的接口以获取目标应用对应的全部组件。在组件管理单元51的应用配置文件中,建立目标应用与其对应的各个组件之间的依赖关系,例如,‘ZR_LIB_A’:’com.ziroom.customer:bi:latest.integration’。
集成单元52与组件管理单元51通信连接,基于获取的目标应用标识,从组件管理单元的应用配置文件中拉取与目标应用标识对应的至少一个组件;基于至少一个组件,分别得到与至少一个组件相对应的至少一个组件代码;基于组件代码,对目标应用对应的至少一个组件进行打包上传。详细说明参见上述实施例中对应部分的相关描述,此处不再赘述。
服务器53与集成单元52通信连接,用于接收集成单元52上传的至少一个组件,并向集成单元52返回组件上传结果。例如,Maven服务器在接收到jenkins持续集成服务器上传的全部组件后,可以存储各个组件对应的aar包,并维护各个组件之间的依赖关系,同时将上传结果发送至jenkins持续集成服务器,以便在组件上传失败后能够及时进行重新上传。
本实施例提供的组件上传系统实现了目标应用与至少一个组件的单独管理,在多人同时开发同一目标应用的组件时无需修改应用配置文件,直接根据目标应用标识从应用配置文件中拉取与其对应的组件进行开发即可,在组件开发完成后进行打包上传,由此避免了应用配置文件频繁修改而导致上传的目标应用的组件存在合并冲突的问题,进一步保证了多人协同开发的同步及时性。
本发明实施例还提供一种计算机设备,具有上述图4所示的组件上传装置。
请参阅图6,图6是本发明可选实施例提供的一种计算机设备的结构示意图,如图6所示,该计算机设备可以包括:至少一个处理器601,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口603,存储器604,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,通信接口603可以包括显示屏(Display)、键盘(Keyboard),可选通信接口603还可以包括标准的有线接口、无线接口。存储器604可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器604可选的还可以是至少一个位于远离前述处理器601的存储装置。其中处理器601可以结合图4所描述的装置,存储器604中存储应用程序,且处理器601调用存储器604中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线602可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器604可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器604还可以包括上述种类存储器的组合。
其中,处理器601可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器601还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器604还用于存储程序指令。处理器601可以调用程序指令,实现如本申请图1至3实施例中所示的组件上传方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的组件上传方法的处理方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(HardDisk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种组件上传方法,其特征在于,包括如下步骤:
获取目标应用标识,利用所述目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,所述应用配置文件中包含有所述目标应用与所述至少一个组件的依赖关系;
基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码;
基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传。
2.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码,包括:
基于所述至少一个组件,确定出与所述至少一个组件相对应的至少一个组件代码地址;
通过所述至少一个组件代码地址,拉取与所述至少一个组件代码地址相对应的至少一个组件代码。
3.根据权利要求1所述的方法,其特征在于,所述基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传,包括:
遍历所述目标应用对应的至少一个组件,确定所述至少一个组件之间的依赖顺序;
基于所述至少一个组件对应的组件代码以及所述依赖顺序,依次将所述至少一个组件进行打包成目标格式的组件文件;
上传所述至少一个组件对应的所述目标格式的组件文件。
4.根据权利要求3所述的方法,其特征在于,所述遍历所述目标应用所依赖的至少一个组件,确定所述至少一个组件之间的依赖顺序,包括:
获取所述至少一个组件对应的标识符,确定所述标识符对应的组件配置信息;
基于所述组件配置信息,对所述至少一个组件进行遍历分析,确定所述至少一个组件之间的依赖顺序。
5.根据权利要求3所述的方法,其特征在于,所述基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传,包括:
获取所述至少一个组件对应的特性分支和开发分支;
判断所述至少一个组件对应的所述特性分支和所述开发分支之间是否存在差异;
当所述特性分支和所述开发分支存在差异时,对存在差异的至少一个组件进行打包上传。
6.根据权利要求5所述的方法,其特征在于,还包括:
当所述特性分支和所述开发分支不存在差异时,将不存在差异的至少一个组件的所述开发分支所对应的组件文件拷贝至所述特性分支所在路径。
7.一种组件上传装置,其特征在于,包括:
获取模块,用于获取目标应用标识,利用所述目标应用标识从应用配置文件中确定目标应用对应至少一个组件,其中,所述应用配置文件中包含有所述目标应用与所述至少一个组件的依赖关系;
确定模块,用于基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码;
上传模块,用于基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传。
8.一种组件上传系统,其特征在于,包括:
组件管理单元,用于构建目标应用以及所述目标应用对应的至少一个组件的应用配置文件,通过所述应用配置文件对所述目标应用及其至少一个组件行单独管理;
集成单元,与所述组件管理单元通信连接,基于获取的目标应用标识,从所述组件管理单元的所述应用配置文件中拉取与所述目标应用标识对应的至少一个组件;基于所述至少一个组件,分别得到与所述至少一个组件相对应的至少一个组件代码;基于所述组件代码,对所述目标应用对应的至少一个组件进行打包上传;
服务器,与所述集成单元通信连接,用于接收所述集成单元上传的至少一个组件,并向所述集成单元返回组件上传结果。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-6任一项所述的组件上传方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-6任一项所述的组件上传方法。
CN202110352168.9A 2021-03-31 2021-03-31 组件上传方法、装置、系统、计算机设备及可读存储介质 Active CN113098961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110352168.9A CN113098961B (zh) 2021-03-31 2021-03-31 组件上传方法、装置、系统、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110352168.9A CN113098961B (zh) 2021-03-31 2021-03-31 组件上传方法、装置、系统、计算机设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113098961A true CN113098961A (zh) 2021-07-09
CN113098961B CN113098961B (zh) 2023-04-07

Family

ID=76672164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110352168.9A Active CN113098961B (zh) 2021-03-31 2021-03-31 组件上传方法、装置、系统、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113098961B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821249A (zh) * 2021-09-18 2021-12-21 挂号网(杭州)科技有限公司 项目开发配置的方法、装置、电子设备和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190095197A1 (en) * 2017-09-28 2019-03-28 International Business Machines Corporation Re-use of code
CN109582347A (zh) * 2018-10-15 2019-04-05 平安科技(深圳)有限公司 一种获取前端代码的方法及装置
CN110750245A (zh) * 2019-10-17 2020-02-04 杭州涂鸦信息技术有限公司 一种应用程序开发方法及系统和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190095197A1 (en) * 2017-09-28 2019-03-28 International Business Machines Corporation Re-use of code
CN109582347A (zh) * 2018-10-15 2019-04-05 平安科技(深圳)有限公司 一种获取前端代码的方法及装置
CN110750245A (zh) * 2019-10-17 2020-02-04 杭州涂鸦信息技术有限公司 一种应用程序开发方法及系统和设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821249A (zh) * 2021-09-18 2021-12-21 挂号网(杭州)科技有限公司 项目开发配置的方法、装置、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN113098961B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN108459962B (zh) 代码规范性检测方法、装置、终端设备及存储介质
CN110276074B (zh) 自然语言处理的分布式训练方法、装置、设备及存储介质
CN112148509A (zh) 数据处理方法、装置、服务器及计算机可读存储介质
CN106873952B (zh) 移动端网页开发的数据处理系统和方法、及应用装置
CN111722873A (zh) 代码重构方法、装置、设备及介质
CN111290951A (zh) 测试方法、终端、服务器、系统及存储介质
CN112148302A (zh) 一种接口文档生成方法、装置、设备及可读存储介质
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN115617780A (zh) 数据导入方法、装置、设备及存储介质
CN113098961A (zh) 组件上传方法、装置、系统、计算机设备及可读存储介质
CN114465937A (zh) 网卡测试方法、装置、服务器、介质和计算机程序产品
CN112274913B (zh) 游戏服务器的合并方法及装置、存储介质、电子装置
CN112818937A (zh) Excel文件的识别方法、装置、电子设备及可读存储介质
CN117539459A (zh) 一种api接口配置方法、系统及设备
CN114647548A (zh) 一种日志生成方法及装置
CN110825622A (zh) 软件测试方法、装置、设备和计算机可读介质
US9104356B2 (en) Extendable system for preprocessing print document and method for the same
CN115016836A (zh) 组件版本管理方法、装置、电子设备及系统
CN115794858A (zh) 查询语句处理方法、装置、设备及存储介质
CN111400245B (zh) 美术资源迁移方法及装置
CN113419957A (zh) 基于规则的大数据离线批处理性能容量扫描方法及装置
CN112199529A (zh) 图片处理方法、装置、电子设备及存储介质
CN114564925A (zh) 报表生成方法、装置、电子设备及可读存储介质
CN113672509A (zh) 自动化测试方法、装置、测试平台及存储介质
CN113867778A (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
GR01 Patent grant
GR01 Patent grant