CN117724757A - 多项目制品包的生成方法、装置及电子设备 - Google Patents
多项目制品包的生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117724757A CN117724757A CN202311725067.7A CN202311725067A CN117724757A CN 117724757 A CN117724757 A CN 117724757A CN 202311725067 A CN202311725067 A CN 202311725067A CN 117724757 A CN117724757 A CN 117724757A
- Authority
- CN
- China
- Prior art keywords
- project
- generating
- pipeline tasks
- pipeline
- tasks
- 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 84
- 230000010354 integration Effects 0.000 claims description 59
- 238000003860 storage Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 10
- 238000013515 script Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000007726 management method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000012384 transportation and delivery Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012356 Product development Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003339 best practice Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000002674 ointment Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000011148 porous material Substances 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种多项目制品包的生成方法、装置及电子设备。其中,该方法包括:获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。本申请解决了相关技术中产品应用构建过程中只能有一套maven版本构建,导致不能多个项目并行构建的技术问题。
Description
技术领域
本申请涉及集成技术领域,具体而言,涉及一种多项目制品包的生成方法、装置及电子设备。
背景技术
目前在常规应用系统开发部署中,使用Maven构建,通常Jenkins需要高频次编译构建产品代码,由于产品代码包分层多、项目点多、或者版本号规划不够清晰等多种外在因素,通常会导致产品代码分支过多冗余、项目个性化需求多、集成交付情况变得越来越不好控制。Maven通过pom文件管理版本号的打包方式,必定会发生相同jar包相同版本号但分支不同而无法通用一套私服库版本的情况发生,从而无法满足产品化通用版本需要同时支撑多项目个性化实施的版本jar包控制管理交付要求。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种多项目制品包的生成方法、装置及电子设备,以至少解决相关技术中产品应用构建过程中只能有一套maven版本构建,导致不能多个项目并行构建的技术问题。
根据本申请实施例的一个方面,提供了一种多项目制品包的生成方法,包括:获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
可选地,获取多个流水线任务之前,方法还包括:检测终端中是否安装有用于运行多个流水线任务的项目集成工具;在项目集成工具未安装在终端上的情况下,生成第一提示信息,其中,第一提示信息用于提示目标对象在终端上安装项目集成工具;在项目集成工具已安装在终端上的情况下,响应于目标对象的操作,在项目集成工具中创建多个分布式节点,其中,分布式节点用于执行运行命令。
可选地,在项目集成工具已安装在终端上的情况下,方法还包括:检测终端中是否安装有用于运行项目集成工具所需的插件;在插件未安装在终端上的情况下,生成第二提示信息,其中,第二提示信息用于提示目标对象在终端上安装插件;在插件已安装在终端上的情况下,响应于目标对象的操作,在项目集成工具中创建多个分布式节点。
可选地,在项目集成工具已安装在终端上的情况下,方法还包括:确定分布式节点的属性信息,其中,属性信息通过插件中的脚本实现,属性信息用于表征执行流水线任务的运行环境信息;确定对分布式节点所在容器进行编译后的文件上传路径;在属性信息和文件上传路径确认后,生成镜像文件。
可选地,生成镜像文件之后,方法还包括:初始化镜像文件,并确定镜像文件中的文件目录与物理机的挂载关系。
可选地,在容器模板中修改与多个流水线任务对应的配置信息,包括:确定多个流水线任务的配置信息,其中,配置信息包括以下至少之一:任务参数、版本标识和项目名标识;将容器模板中的初始配置信息修改为与多个流水线任务对应的配置信息。
可选地,生成与多个流水线任务对应的多个项目制品包,包括:配置多个目标实例对应的执行阶段和执行步骤;编译配置好的多个目标实例,并通过插件从代码库中获取与多个目标实例对应的代码,生成多个项目制品包。
根据本申请实施例的另一方面,还提供了一种多项目制品包的生成装置,包括:获取模块,用于获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;修改模块,用于在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;生成模块,用于编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
根据本申请实施例的又一方面,还提供了一种电子设备,包括:存储器,用于存储程序指令;处理器,与存储器连接,用于执行实现以下功能的程序指令:获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行上述多项目制品包的生成方法。
在本申请实施例中,通过获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;编译多个目标实例,生成与多个流水线任务对应的多个项目制品包,达到了使用同一个容器模板中的私服库版本的目的,从而实现了利用容器模板构建多个并行的流水线任务的实例的技术效果,进而解决了相关技术中产品应用构建过程中只能有一套maven版本构建,导致不能多个项目并行构建的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现多项目制品包的生成方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种多项目制品包的生成方法的流程图;
图3是根据本申请实施例的一种多项目制品包的生成装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行解释说明的过程中出现的部分名词或术语适用于如下解释:
Maven,即Apache Maven,Maven以程序构建能力为特色,提供高级项目管理工具,Maven简化构建过程,提供统一的构建系统,Apache Maven是一个(特别是Java编程)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Jenkins,是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的构建、编译、打包、发布、自动部署工作,实现软件项目持续集成,主要包括:持续软件版本发布/测试、监控执行外部调用。
CICD,包含了一个CI和两个CD,CI全称Continuous Integration,表示持续集成,CD包含Continuous Delivery和Continuous Deployment,分别是持续交付和持续部署,这三个概念之间是有前后依赖关系的。CI/CD是一种软件开发实践,核心是通过引入自动化的手段来提高软件交付效率。CI/CD最终目的是实现更快、更高质量、更简单的交付软件。
Docker技术,是一个开源应用容器引擎,能够快速搭建或模拟开发生产环境并能实现自动测试持续集成部署等适配。
Maven本身是Apache一个开源项目,主要用于java开发项目的代码进行构建、依赖管理、编译管理和信息管理等,能通过构建脚本、pom.xml文件配置等调优,实现项目代码编译、测试、发布等步骤自动化,最大程度起到管理产品jar包、编译代码、自动运行单元测试等项目工程管理作用。对于多个代码仓Maven pom依赖的开发项目,由于依赖特性,相同jar版本不能多个实施项目共同构建。
为了解决上述问题,本申请实施例提供了一种多项目制品包的生成方法,以解决产品和项目方式的版本发布及部署集成问题,通过配置多个项目流水线,主要解决多项目并行构建、生成不同标识制品的质量管控及提效问题。该方法可以运行在图1所示的计算机终端中,以下对计算机终端进行详细说明。
本申请实施例所提供的多项目制品包的生成方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现多项目制品包的生成方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的多项目制品包的生成方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多项目制品包的生成方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机终端可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端中的部件的类型。
在上述运行环境下,本申请实施例提供了一种多项目制品包的生成方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例涉及基于Maven构建实现java代码开发中相同私服版本容器化多项目持续集成的方法及实践,提供了一种Maven项目CI/CD容器化多项目模板构建提效方法,可应用于大数据中台领域或其他领域,基于Jenkins pipeline脚本生成的流水线作业,对多个实施项目参数、项目名标识、版本标识进行定义,得到项目发布容器化模版,生成与目标项目对应的实例pipeline脚本,通过不同的stage配置,配置触发方式,生成流水线运行作业,实现一个容器化模板完成所有产品项目和定开项目统一规范部署集成,并生成各个实施项目不同结果制品包的过程。以下进行说明。
图2是根据本申请实施例的一种多项目制品包的生成方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序。
在上述步骤S202中,当有多个流水线任务需要同时构建对应的实例时,可以同时获取多个流水线任务。
步骤S204,在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器。
在上述步骤S204中,可以使用预先制作好的容器模板对所获取的多个流水线任务进行实例构建,在构建与流水线任务对应的目标实例时,需要将容器模板中的配置信息修改为与流水线任务对应的配置信息,例如修改容器模板中的项目名标识、版本标识、项目参数等配置信息,从而可以得到与多个流水线任务对应的多个目标实例。
步骤S206,编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
在上述步骤S206中,在生成目标实例后,通过编译并运行这些实例,即可生成与多个流水线任务对应的多个项目制品包。
通过上述步骤S202至步骤S206,达到了使用同一个容器模板中的私服库版本的目的,从而实现了利用容器模板构建多个并行的流水线任务的实例的技术效果,进而解决了相关技术中产品应用构建过程中只能有一套maven版本构建,导致不能多个项目并行构建的技术问题。以下详细说明。
在上述多项目制品包的生成方法中的步骤S202中,获取多个流水线任务之前,方法还包括如下步骤:检测终端中是否安装有用于运行多个流水线任务的项目集成工具;在项目集成工具未安装在终端上的情况下,生成第一提示信息,其中,第一提示信息用于提示目标对象在终端上安装项目集成工具;在项目集成工具已安装在终端上的情况下,响应于目标对象的操作,在项目集成工具中创建多个分布式节点,其中,分布式节点用于执行运行命令。
在上述步骤中,在项目集成工具已安装在终端上的情况下,方法还包括如下步骤:检测终端中是否安装有用于运行项目集成工具所需的插件;在插件未安装在终端上的情况下,生成第二提示信息,其中,第二提示信息用于提示目标对象在终端上安装插件;在插件已安装在终端上的情况下,响应于目标对象的操作,在项目集成工具中创建多个分布式节点。
在本申请实施例中,由于需要使用项目集成工具和对应的插件才能生成所需的项目制品包,因此在获取流水线任务进行配置之前,需要先检测当前终端中是否安装有用于运行多个流水线任务的项目集成工具和插件,当终端中未安装项目集成工具时会生成第一提示信息,该项目集成工具例如可以为Jenkins平台,第一提示信息用于提示目标对象在终端安装项目集成工具。当终端中已安装有用于运行多个流水线任务的项目集成工具时,利用该项目集成工具,并响应于目标对象的操作,创建多个分布式节点,例如在Jenkins平台中创建多个slave节点,该slave节点用于执行运行命令。当终端中已安装有用于运行多个流水线任务的项目集成工具,但未安装有用于运行项目集成工具所需的插件时,会生成第二提示信息,该插件例如可以包括但不限于Maven、pipeline、git插件等,第二提示信息用于提示目标对象安装插件;当终端中均安装了用于运行多个流水线任务的项目集成工具和对应的插件后,利用该项目集成工具和插件,并响应于目标对象的创建操作,生成多个分布式节点,例如生成slave节点。
在上述步骤中,在项目集成工具已安装在终端上的情况下,方法还包括如下步骤:确定分布式节点的属性信息,其中,属性信息通过插件中的脚本实现,属性信息用于表征执行流水线任务的运行环境信息;确定对分布式节点所在容器进行编译后的文件上传路径;在属性信息和文件上传路径确认后,生成镜像文件。
在本申请实施例中,在Jenkins中创建多个slave节点后,需要配置slave节点的属性信息,该属性信息例如可以包括agent参数等,通过pipeline脚本配置agent参数,该agent参数可以包括运行流水线任务所需的环境变量等,也即配置容器salve节点指定项目执行运行环境,并搭建Maven环境配置nexus仓库配置,其中,nexus仓库即在运行编译后文件上传的(私服)仓库,通过确定编译后的文件上传路径,即可确定仓库的位置。
为了实现多个项目制品包的并行生成,需要搭建持续集成环境和基础环境,具体地,在Jenkins中搭建Jenkins多个slave节点,通过pipeline脚本配置agent参数,通过agent参数配置容器salve节点指定项目执行运行环境,并搭建Maven环境配置nexus仓库配置,通过封装得到镜像文件。
在上述步骤中,生成镜像文件之后,方法还包括如下步骤:初始化镜像文件,并确定镜像文件中的文件目录与物理机的挂载关系。
在本申请实施例中,在生成镜像文件之后,需要封装镜像内置Maven私服环境,具体地,配置镜像文件,实现镜像文件的初始化,通过配置repository目录挂载映射优化,也即确定镜像文件中的文件目录与物理机的挂载关系,从而可以实现容器资源及宿主机文件物理隔离。同时支持Jenkins全局参数${JOB_NAME}参数扩展,该全局参数例如可以包括但不限于运行流水线任务的最大时长、流量最大值等。
在封装镜像内置Maven私服环境时,需要通过运行验证生成目标pipeline脚本全局参数信息,当运行没有报错时,表示当前的配置信息和相关代码没有问题,当运行过程中报错时,用户需要根据报错位置修改对应的代码,并再次运行,直至运行不报错时表示验证通过。
在上述多项目制品包的生成方法中的步骤S204中,在容器模板中修改与多个流水线任务对应的配置信息,具体包括如下步骤:确定多个流水线任务的配置信息,其中,配置信息包括以下至少之一:任务参数、版本标识和项目名标识;将容器模板中的初始配置信息修改为与多个流水线任务对应的配置信息。
在本申请实施例中,在构建与流水线任务对应的目标实例时,需要将容器模板中的配置信息修改为与流水线任务对应的配置信息,例如修改容器模板中的项目名标识、版本标识、任务参数等配置信息,从而可以得到与多个流水线任务对应的多个目标实例。
在上述多项目制品包的生成方法中的步骤S206中,生成与多个流水线任务对应的多个项目制品包,具体包括如下步骤:配置多个目标实例对应的执行阶段和执行步骤;编译配置好的多个目标实例,并通过插件从代码库中获取与多个目标实例对应的代码,生成多个项目制品包。
在本申请实施例中,在进行项目打包的过程中,需要在Jenkins中创建多个流水线pipeline任务,使用容器模板对每个流水线任务进行配置,包括配置执行阶段和执行步骤,也即配置stage和steps,通过git插件从代码库中拉取对应的代码,配置shell执行mvnclean install命令进行容器内编译,并执行已配置pipeline脚本全局模版,生成项目制品打包流水线,也即得到多个项目制品包。
在生成项目制品包之后,按照制品规范生成独立项目部署交付制品包,具体地,容器节点生成各个项目jar或war或zip可部署交付物。
本申请实施例提供的多项目制品包的生成方法,可以实际应用到产品开发测试持续集成环境中,实现了每个集成项目独立容器化构建,mvn install对应产品包独立集成,实现容器资源及宿主机文件物理隔离,提高测试人员集成打包发布效率和主机slave节点复用度,实现串行单项目打包方式到并行多项目同时编译方式的集成架构优化。
通过配置pipeline流水线,修改容器映射maven挂载目录,实现多项目并行构建相同版本jar包而项目间互相不影响的最佳实践方案,适用于在产品开发迭代与多个项目版本迭代并行情况下的多项目同时发布场景,最终实现各流水线版本在线化管控。以下是一种样例配置:
通过本申请实施例提供的多项目制品包的生成方法,可以解决多项目持续集成相同交付版本而Maven库又不互相干扰的技术问题,基于Maven构建并结合容器化实现多软件项目并行持续集成的方法和最佳实践,改变现有产品应用构建过程中只能有一套Maven版本构建的低效问题,实现多项目并行构建相同Maven版本而保障各私服库间版本互不干扰,大大提升产品版本驱动模式下各项目交付编译效率和交付质量,实现多项目实施模式下产品标品、项目制品标准版本发布规范的有效管控落地。
图3是根据本申请实施例的一种多项目制品包的生成装置的结构图,如图3所示,该装置包括:
获取模块32,用于获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;
修改模块34,用于在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;
生成模块36,用于编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
在上述多项目制品包的生成装置中,通过获取模块32、修改模块34和生成模块36,达到了使用同一个容器模板中的私服库版本的目的,从而实现了利用容器模板构建多个并行的流水线任务的实例的技术效果,进而解决了相关技术中产品应用构建过程中只能有一套maven版本构建,导致不能多个项目并行构建的技术问题。
在上述多项目制品包的生成装置中的获取模块中,该获取模块还用于检测终端中是否安装有用于运行多个流水线任务的项目集成工具;在项目集成工具未安装在终端上的情况下,生成第一提示信息,其中,第一提示信息用于提示目标对象在终端上安装项目集成工具;在项目集成工具已安装在终端上的情况下,响应于目标对象的操作,在项目集成工具中创建多个分布式节点,其中,分布式节点用于执行运行命令。
在上述多项目制品包的生成装置中的获取模块中,该获取模块还用于检测终端中是否安装有用于运行项目集成工具所需的插件;在插件未安装在终端上的情况下,生成第二提示信息,其中,第二提示信息用于提示目标对象在终端上安装插件;在插件已安装在终端上的情况下,响应于目标对象的操作,在项目集成工具中创建多个分布式节点。
在上述多项目制品包的生成装置中的获取模块中,该获取模块还用于在项目集成工具已安装在终端上的情况下,确定分布式节点的属性信息,其中,属性信息通过插件中的脚本实现,属性信息用于表征执行流水线任务的运行环境信息;确定对分布式节点所在容器进行编译后的文件上传路径;在属性信息和文件上传路径确认后,生成镜像文件。
在上述多项目制品包的生成装置中的获取模块中,该获取模块还用于在生成镜像文件之后,初始化镜像文件,并确定镜像文件中的文件目录与物理机的挂载关系。
在上述多项目制品包的生成装置中的修改模块中,该修改模块还用于确定多个流水线任务的配置信息,其中,配置信息包括以下至少之一:任务参数、版本标识和项目名标识;将容器模板中的初始配置信息修改为与多个流水线任务对应的配置信息。
在上述多项目制品包的生成装置中的生成模块中,该生成模块还用于配置多个目标实例对应的执行阶段和执行步骤;编译配置好的多个目标实例,并通过插件从代码库中获取与多个目标实例对应的代码,生成多个项目制品包。
需要说明的是,图3所示的多项目制品包的生成装置用于执行图2所示的多项目制品包的生成方法,因此上述多项目制品包的生成方法中的相关解释说明也适用于该多项目制品包的生成装置,此处不再赘述。
本申请实施例还提供了一种电子设备,包括:存储器,用于存储程序指令;处理器,与存储器连接,用于执行实现以下功能的程序指令:获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
需要说明的是,上述电子设备用于执行图2所示的多项目制品包的生成方法,因此上述多项目制品包的生成方法中的相关解释说明也适用于该电子设备,此处不再赘述。
本申请实施例还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行以下多项目制品包的生成方法:获取多个流水线任务,其中,多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与多个流水线任务对应的配置信息,得到多个流水线任务对应的多个目标实例,其中,容器模板为预先配置好用于并行构建实例的容器;编译多个目标实例,生成与多个流水线任务对应的多个项目制品包。
需要说明的是,上述非易失性存储介质用于执行图2所示的多项目制品包的生成方法,因此上述多项目制品包的生成方法中的相关解释说明也适用于该非易失性存储介质,此处不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种多项目制品包的生成方法,其特征在于,包括:
获取多个流水线任务,其中,所述多个流水线任务用于表示生成项目制品包所需的工序;
在容器模板中修改与所述多个流水线任务对应的配置信息,得到所述多个流水线任务对应的多个目标实例,其中,所述容器模板为预先配置好用于并行构建实例的容器;
编译所述多个目标实例,生成与所述多个流水线任务对应的多个项目制品包。
2.根据权利要求1所述的方法,其特征在于,获取多个流水线任务之前,所述方法还包括:
检测终端中是否安装有用于运行所述多个流水线任务的项目集成工具;
在所述项目集成工具未安装在所述终端上的情况下,生成第一提示信息,其中,所述第一提示信息用于提示目标对象在所述终端上安装所述项目集成工具;
在所述项目集成工具已安装在所述终端上的情况下,响应于所述目标对象的操作,在所述项目集成工具中创建多个分布式节点,其中,所述分布式节点用于执行运行命令。
3.根据权利要求2所述的方法,其特征在于,在所述项目集成工具已安装在所述终端上的情况下,所述方法还包括:
检测所述终端中是否安装有用于运行所述项目集成工具所需的插件;
在所述插件未安装在所述终端上的情况下,生成第二提示信息,其中,所述第二提示信息用于提示所述目标对象在所述终端上安装所述插件;
在所述插件已安装在所述终端上的情况下,响应于所述目标对象的操作,在所述项目集成工具中创建多个分布式节点。
4.根据权利要求3所述的方法,其特征在于,在所述项目集成工具已安装在所述终端上的情况下,所述方法还包括:
确定所述分布式节点的属性信息,其中,所述属性信息通过所述插件中的脚本实现,所述属性信息用于表征执行流水线任务的运行环境信息;
确定对所述分布式节点所在容器进行编译后的文件上传路径;
在所述属性信息和所述文件上传路径确认后,生成镜像文件。
5.根据权利要求4所述的方法,其特征在于,生成镜像文件之后,所述方法还包括:
初始化所述镜像文件,并确定所述镜像文件中的文件目录与物理机的挂载关系。
6.根据权利要求1所述的方法,其特征在于,在容器模板中修改与所述多个流水线任务对应的配置信息,包括:
确定所述多个流水线任务的配置信息,其中,所述配置信息包括以下至少之一:任务参数、版本标识和项目名标识;
将所述容器模板中的初始配置信息修改为与所述多个流水线任务对应的配置信息。
7.根据权利要求3所述的方法,其特征在于,生成与所述多个流水线任务对应的多个项目制品包,包括:
配置所述多个目标实例对应的执行阶段和执行步骤;
编译配置好的多个目标实例,并通过所述插件从代码库中获取与所述多个目标实例对应的代码,生成所述多个项目制品包。
8.一种多项目制品包的生成装置,其特征在于,包括:
获取模块,用于获取多个流水线任务,其中,所述多个流水线任务用于表示生成项目制品包所需的工序;
修改模块,用于在容器模板中修改与所述多个流水线任务对应的配置信息,得到所述多个流水线任务对应的多个目标实例,其中,所述容器模板为预先配置好用于并行构建实例的容器;
生成模块,用于编译所述多个目标实例,生成与所述多个流水线任务对应的多个项目制品包。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,与所述存储器连接,用于执行实现以下功能的程序指令:获取多个流水线任务,其中,所述多个流水线任务用于表示生成项目制品包所需的工序;在容器模板中修改与所述多个流水线任务对应的配置信息,得到所述多个流水线任务对应的多个目标实例,其中,所述容器模板为预先配置好用于并行构建实例的容器;编译所述多个目标实例,生成与所述多个流水线任务对应的多个项目制品包。
10.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项所述的多项目制品包的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311725067.7A CN117724757A (zh) | 2023-12-14 | 2023-12-14 | 多项目制品包的生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311725067.7A CN117724757A (zh) | 2023-12-14 | 2023-12-14 | 多项目制品包的生成方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117724757A true CN117724757A (zh) | 2024-03-19 |
Family
ID=90201040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311725067.7A Pending CN117724757A (zh) | 2023-12-14 | 2023-12-14 | 多项目制品包的生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724757A (zh) |
-
2023
- 2023-12-14 CN CN202311725067.7A patent/CN117724757A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111245898B (zh) | 一种网络设备上线方法、装置、服务器及存储介质 | |
US9311161B2 (en) | Automatically configured management service payloads for cloud IT services delivery | |
CN102364891B (zh) | 嵌入式以太网设备升级软件的方法及嵌入式以太网设备 | |
CN109271198A (zh) | 基于Docker容器的镜像打包方法、装置及电子设备 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
KR20170048797A (ko) | 인프라의 설치와 구성을 자동화하는 장치 및 그 방법 | |
CN112230942A (zh) | 一种支持多种国产化操作系统的自动化部署方法与系统 | |
KR102432807B1 (ko) | 마이크로서비스 구조 재구성 방법 및 장치 | |
CN107632829A (zh) | 一种基于iOS系统下的App自动化持续集成系统及方法 | |
CN104125504A (zh) | 一种基于持续集成的部署方法、装置及系统 | |
CN111651352B (zh) | 一种仓库代码的合并方法及装置 | |
CN113127009A (zh) | 大数据管理平台的自动化部署方法和装置 | |
US20130024874A1 (en) | Data distribution system based on the exchange of asynchronous messages | |
CN115328529B (zh) | 应用管理方法及相关设备 | |
CN112558930B (zh) | 一种面向容器服务的软件生成系统及方法 | |
CN111897565A (zh) | 基于物联网的数据处理方法、装置和设备 | |
CN116954752A (zh) | 一种差异化系统配置、加载方法、装置及计算机设备 | |
CN117724757A (zh) | 多项目制品包的生成方法、装置及电子设备 | |
CN116048476A (zh) | 命令行工具执行方法、装置、介质及设备 | |
CN112882748B (zh) | 一种嵌入式系统的映像文件管理和批量部署工具 | |
CN113886008A (zh) | 一种虚拟机管理方法、系统、设备以及介质 | |
KR20130024857A (ko) | 디바이스 제어용 앱 처리 장치 및 방법 | |
CN112199161A (zh) | 一种云平台服务管理方法、装置及相关组件 | |
CN112650189A (zh) | 一种嵌入式plc自动化测试系统及方法 | |
CN112306843A (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 |