一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件制品生成方法及装置与流程

2022-11-30 16:19:07 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种软件制品生成方法及装置。


背景技术:

2.通常情况下,开发人员通过离线编辑生成软件制品之后,可以通过邮件或ftp等方式分发上述软件制品的安装包,应用人员可以基于上述软件制品的安装包,将上述软件制品手动部署至目标电子设备。
3.但是,在上述生成软件制品的过程中,软件制品的质量受开发人员执行水平以及个人经验的影响较大,开发人员的执行水平以及个人经验,可以直接影响软件制品的交付标准。并且,基于人工生成软件制品需要投入大量的人工成本和时间成本,软件制品的生成效率不高。因此,如何提高软件制品的质量稳定性和生成效率,是本领域技术人员亟待解决的技术问题。


技术实现要素:

4.本发明提供一种软件制品生成方法及装置,用以解决现有技术中软件制品的质量受开发人员执行水平以及个人经验的影响较大且软件制品的生成效率较低的缺陷,实现提高软件制品的质量稳定性和生成效率。
5.本发明提供一种软件制品生成方法,包括:
6.获取待制作软件制品对应的目标源代码和目标软件制品模板;
7.基于所述目标源代码和所述目标软件制品模板,生成所述待制作软件制品;
8.其中,所述目标软件制品模板基于软件制品格式标准生成;所述软件制品格式标准用于定义软件制品模板的文件描述以及目录结构;所述文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
9.根据本发明提供的软件制品生成方法,所述基于所述目标源代码和所述目标软件制品模板,生成所述待制作软件制品,包括:
10.编译所述目标源代码,获取目标源代码文件可执行程序;
11.合并所述目标源代码文件可执行程序和所述目标软件制品模板,获得所述待制作软件的制品文件;
12.压缩所述制品文件,获得所述待制作软件制品。
13.根据本发明提供的软件制品生成方法,所述制品名称命名定义,包括:软件制品模板的名称需包括顺序排列的模板标识、部署模式标识以及版本标识;
14.所述软件制品模板的模板标识、部署模式以及版本,基于所述软件制品模板携带的制品描述文件确定。
15.根据本发明提供的软件制品生成方法,所述生成所述待制作软件制品之后,还包括:
16.基于所述软件制品格式标准中规定的数字签名格式,为所述待制作软件制品写入
数字签名。
17.根据本发明提供的软件制品生成方法,所述为所述待制作软件制品写入数字签名之后,还包括:
18.将写有数字签名的待制作软件制品存储至制品文件库。
19.根据本发明提供的软件制品生成方法,还包括:
20.从制品文件库中获取目标软件制品;
21.执行所述目标软件制品可支持的部署模式对应的自动化脚本,将所述目标软件制品部署至目标资源。
22.根据本发明提供的软件制品生成方法,在所述目标软件制品可支持的部署模式为主机部署模式的情况下,所述执行所述目标软件制品可支持的部署模式对应的自动化脚本,将所述目标软件制品部署至目标资源,包括:
23.执行主机部署模式对应的自动化脚本,并替换所述主机部署模式对应的自动化脚本中的初始输入变量,以供将所述目标软件制品部署至目标资源;
24.其中,所述主机部署模式对应的自动化脚本的初始输入变量是预定义的。
25.根据本发明提供的软件制品生成方法,在所述目标软件制品可支持的部署模式为容器部署模式的情况下,所述执行所述目标软件制品可支持的部署模式对应的自动化脚本,将所述目标软件制品部署至目标资源,包括:
26.获取所述目标软件制品对应的镜像文件;
27.执行容器部署模式对应的自动化脚本,并替换所述容器部署模式对应的自动化脚本中的初始输入变量,以供将所述镜像文件部署至目标资源;
28.其中,所述容器部署模式对应的自动化脚本的初始输入参数是预定义的。
29.根据本发明提供的软件制品生成方法,在所述目标软件制品的数量为多个的情况下,所述从所述制品文件库中获取目标软件制品之后,还包括:
30.将各所述目标软件制品,合并为一个软件制品组;
31.执行所述软件制品组可支持的部署模式对应的自动化脚本,将所述软件制品组部署至目标资源。
32.本发明还提供一种软件制品生成装置,包括:
33.数据获取模块,用于获取待制作软件制品对应的目标源代码和目标软件制品模板;
34.制品生成模块,用于基于所述目标源代码和所述目标软件制品模板,生成所述待制作软件制品;
35.其中,所述目标软件制品模板基于软件制品格式标准生成;所述软件制品格式标准用于定义软件制品模板的文件描述以及目录结构;所述文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
36.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软件制品生成方法。
37.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件制品生成方法。
38.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述软件制品生成方法。
39.本发明提供的软件制品生成方法及装置,通过获取待制作软件制品对应的目标源代码和目标软件制品模板之后,基于上述目标源代码和目标软件制品模板,生成待制作软件制品,目标软件制品模板基于软件制品格式标准生成,上述软件制品格式标准用于定义软件制品模板的文件描述以及目录结构,所述文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义,能基于上述软件制品格式标准,规范软件制品生成的流程和方式,能避免开发人员的执行水平以及个人经验对软件制品的交付标准的影响,从而能提高软件制品的质量稳定性,能降低生成软件制品时所需投入的人工成本和时间成本,能提高软件制品的生成效率。
附图说明
40.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1是本发明提供的软件制品生成方法的流程示意图之一;
42.图2是本发明提供的软件制品生成方法的流程示意图之二;
43.图3是本发明提供的软件制品生成方法中部署软件制品的流程示意图;
44.图4是本发明提供的软件制品生成方法中生成软件制品组的流程示意图;
45.图5是本发明提供的软件制品生成装置的结构示意图;
46.图6是本发明提供的电子设备的结构示意图。
具体实施方式
47.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.在发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
49.需要说明的是,传统软件制品的发布,由开发人员离线编辑软件制品,包括:程序介质、部署脚本以及部署说明等。完成对传统软件制品的离线编辑之后,开发人员可以收集和编辑发布介质,通过邮件或ftp等方式实现上述传统软件制品的安装包的分发。应用人员可以基于上述传统软件制品的安装包,将上述传统软件制品手动部署至目标电子设备。
50.但是,上述传统软件制品的制作、分发及部署,存在安装介质标准不统一的问题。在上述传统软件制品的安装包分发过程中,无流程即平台的保证,易导致文件丢失或被篡
改,其完整性和安全性难以保障。在上述传统软件制品的实际部署中,难以实现统一流程统一配置。并且,每一传统软件制品都是独立发布的,而开发人员的执行水平及个人经验,将直接影响传统软件制品的交付标准。
51.对此,本发明提供一种软件制品生成方法,可以在代码仓库和持续集成工具构建程序包的技术发展趋势的基础上,制定一种软件制品格式标准,并可以基于上述软件制品格式标准,规范软件制品生成、分发和部署的流程和方式,可以满足主机及容器化部署的软件制品规范要求,可以为开发测试运维环境中软件制品的生成、发布以及部署提供一套开箱即用的标准以及技术解决方案,有助于帮助产品团队完善产品发布和部署流程,并可以实现各个环节的标准化。
52.图1是本发明提供的软件制品生成方法的流程示意图之一。下面结合图1描述本发明的软件制品生成方法。如图1所示,该方法包括:步骤101、获取待制作软件制品对应的目标源代码和目标软件制品模板。
53.其中,目标软件制品模板基于软件制品格式标准生成;软件制品格式标准用于定义软件制品模板的文件描述以及目录结构;文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
54.需要说明的是,本发明实施例的执行主体为软件制品生成装置。
55.具体地,本发明实施例中可以通过多种方式获取待制作软件制品对应的目标源代码和目标软件制品模板。例如:开发人员可以基于待制作软件制品的生成需求,编写并输入待制作软件制品对应的目标源代码,开发人员还可以基于待制作软件制品的生成需求和软件制品格式标准,制作并输入待制作软件制品对应的目标软件制品模板,从而可以基于用户的上述输入,获取待制作软件制品对应的目标源代码和目标软件制品模板;又或者,可以基于待制作软件制品的生成需求,从已存储的源代码中,查找并获取待制作软件对应的目标源代码,从已存储的基于软件制品格式标准制作的各软件制品模板中,查找并获取待制作软件对应的目标软件指标模板。
56.需要说明的是,待制作软件制品中的每一应用程序可以与一个目标软件制品模板对应,待制作软件制品中的每一中间件也可以与一个目标软件制品模板对应。因此,待制作软件制品对应的目标软件制品模板的数量与待制作软件制品中应用程序的数量和中间件的数量相关。
57.图2是本发明提供的软件制品生成方法的流程示意图之二。如图2所示,本发明实施例中可以基于待制作软件制品的生成需求,在软件制品模板库存储的软件制品模板中,查找并获取待制作软件制品对应的目标软件制品模板。
58.其中,软件制品模板库中存储的软件制品模板,可以是开发人员基于软件制品格式标准制作的。开发人员基于软件制品格式制作各软件制品模板之后,可以将上述软件指标模板上传至软件制品模板库中存储。
59.可以理解的是,在软件制品模板库中存储的各软件制品模板均是基于软件制品格式标准制作的情况下,在软件制品模板库存储的软件制品模板中,查找并获取到的待制作软件制品对应的目标软件制品模板,亦是基于软件制品格式标准制作的。
60.如图2所示,本发明实施例中还可以基于待制作软件制品的生成需求,在源代码库存储的源代码中,查找并获取待制作软件制品对应的目标源代码。
61.其中,源代码库中的源代码,可以是开发人员预先编写的。开发人员编写源代码之后,可以将上述源代码上传至源代码库中存储。
62.需要说明的是,本发明实施例中的软件制品格式标准,可以是基于先验知识和/或实际情况制定的。上述软件制品格式标准可以用于定义软件制品模板的文件描述以及目录结构,从而可以将应用程序以及中间件等按标准格式打包成软件制品模板。
63.基于上述各实施例的内容,制品名称命名定义,包括:软件制品模板的名称需包括顺序排列的模板标识、部署模式标识以及版本标识;软件制品模板的模板标识、部署模式以及版本,基于软件制品模板携带的制品描述文件确定。
64.可选地,软件制品格式标准,可以包括但不限于制品文件命名规范及文件格式规范、制品文件目录结构规范以及制品描述文件规范。
65.制品文件命名规范,包括软件制品模板的名称需包括顺序排列的模板标识、部署模式标识以及版本信息。例如,任一软件制品模板的名称为【制品英文名】_(dc|dm)【制品版本】。其中,【制品英文名】可以基于该软件制品模板携带的制品描述文件(product.json)中的enname确定,【制品版本】可以基于该软件制品模板携带的制品描述文件中的version确定;dc表示容器部署模式,dm表示主机部署模式,该软件制品模板的部署模式可以基于该软件制品模板携带的制品描述文件确定。因此,基于任一软件制品模板的名称,可以快速、准确的确定该软件制品模板是用来容器部署或者主机部署。
66.需要说明的是,制品描述文件的整体说明如表1所示。
67.表1制品描述文件的整体说明
[0068][0069]
任一软件制品模板携带的制品描述文件,可以作为该软件制品模板的提纲,用于描述该软件制品模板的基本信息(包括部署模式、标准模板版本、制品文件中文名、制品文件英文名、制品版本、制品版本发布说明等)及应用参数、容器扩展参数及扩展参数。该软件制品模板携带的制品描述文件,可以明确定义该软件制品模板的用途、部署模式以及相关
部署模式的定义说明。
[0070]
任一软件制品模板携带的制品描述文件为json文件,为了方便转换及前后端对参数校验的要求,本发明实施例中定义了param对象规范,使参数值的定义和约束在制品文件制定时就明确定义下来,增强了灵活性和可扩展性。param对象规范说明如表2所示。
[0071]
表2 param对象规范说明
[0072][0073]
需要说明的是,软件制品模板的文件格式为zip格式。
[0074]
在任一软件制品模板的部署模式为容器部署模式的情况下,该软件制品模板的目录结构如下:【app】目录存放制品文件部署需要的文件;
[0075]
【properties】目录存放需要挂载到容器上的文件或pvc配置描述信息;
[0076]
【confspec】目录存放版本部署时需要的配置信息文件;
[0077]
【script】目录存放版本部署时需要的部署脚本;
[0078]
【setup】目录放存容器部署的安装介质,可以通过jenkins对程序进行编译打包,把编译出来的安装介质放到该目录。
[0079]
在任一软件制品模板的部署模式为主机部署模式的情况下,该软件制品模板的目录结构如下:【app】目录存放制品文件部署需要的文件;
[0080]
【ansible】目录存放ansible运行安装配置运行文件;
[0081]
【confspec】目录存放版本部署时需要的配置信息文件;
[0082]
【script】目录存放版本部署时需要的部署脚本;
[0083]
可选地,任一软件制品模板还可以携带镜像描述文件(dockerfile)。任一软件制品模板携带的镜像描述文件可以在基于软件制品模板生成镜像文件时使用,可以为预定义文件。
[0084]
步骤102、基于目标源代码和目标软件制品模板,生成待制作软件制品。
[0085]
具体地,获取待制作软件制品对应的目标源代码和目标软件制品模板之后,可以基于目标源代码和目标软件制品模板,生成待制作软件制品。
[0086]
本发明实施例通过获取待制作软件制品对应的目标源代码和目标软件制品模板之后,基于上述目标源代码和目标软件制品模板,生成待制作软件制品,目标软件制品模板基于软件制品格式标准生成,上述软件制品格式标准用于定义软件制品模板的文件描述以及目录结构,文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数
定义,能基于上述软件制品格式标准,规范软件制品生成的流程和方式,能避免开发人员的执行水平以及个人经验对软件制品的交付标准的影响,从而能提高软件制品的质量稳定性,能降低生成软件制品时所需投入的人工成本和时间成本,能提高软件制品的生成效率。
[0087]
基于上述各实施例的内容,基于目标源代码和目标软件制品模板,生成待制作软件制品,包括:编译目标源代码,获取目标源代码文件可执行程序。
[0088]
具体地,如图2所示,获取待制作软件制品对应的目标源代码之后,可以对上述目标源代码进行编译,从而可以获取目标源代码文件可执行程序。
[0089]
合并目标源代码文件可执行程序和目标软件制品模板,获得待制作软件制品的制品文件。
[0090]
具体地,如图2所示,获取目标源代码文件可执行程序之后,可以将二进制文件存放至目标软件制品模板的对应目录中,以实现目标源代码文件可执行程序和目标软件制品模板的合并,获得待制作软件制品的制品文件。
[0091]
压缩制品文件,获得待制作软件制品。
[0092]
具体地,如图2所示,获得待制作软件制品的制品文件之后,可以压缩待制作软件制品的制品文件,获得待制作软件制品。
[0093]
本发明实施例通过编译待制作软件制品对应的目标源代码,获得目标源代码文件可执行程序之后,合并目标源代码文件可执行程序和待制作软件制品对应的目标软件制品模板,获得待制作软件制品的制品文件,压缩上述制品文件,获得待制作软件制品,能基于待制作软件制品对应的目标源代码和目标软件制品模板,更简单、更高效的生成待制作软件制品。
[0094]
基于上述各实施例的内容,生成待制作软件制品之后,还包括:基于软件制品格式标准中规定的数字签名格式,为待制作软件制品写入数字签名。
[0095]
可选地,软件制品格式标准还可以包括软件制品数字签名格式。
[0096]
具体地,如图2所示,为了保证软件制品的安全性,避免软件制品在分发过程中不被篡改,生成待制作软件制品之后,可以基于软件制品格式标准中规定的数字签名格式,采用非对称加密技术,使用私钥为待制作软件制品生成对应的数字签名,并将上述数字签名的字节码写入上述待制作软件制品。
[0097]
本发明实施例通过在生成待制作软件制品之后,基于软件制品格式标准中规定的数字签名格式,为待制作软件写入数字签名,能避免待制作软件在分发过程中被篡改,能提高待制作软件制品的安全性。
[0098]
基于上述各实施例的内容,为待制作软件制品写入数字签名之后,还包括:将写有数字签名的待制作软件制品存储至制品文件库。
[0099]
具体地,如图2所示,为待制作软件制品写入数字签名之后,可以按照待制作软件制品的类型和版本,将写有数字签名的待制作软件制品推送至制品文件库进行分类存储。
[0100]
本发明实施例通过存储写有数字签名的待制作软件制品,能规范软件制品分发的流程和方式,能为开发测试运维环境中软件制品的生成和发布提供一套开箱即用的标准以及技术解决方案。
[0101]
基于上述各实施例的内容,还包括:从制品文件库中获取目标软件制品。
[0102]
图3是本发明提供的软件制品生成方法中部署软件制品的流程示意图。如图3所
示,在软件制品的部署模式包括容器部署模式的情况下,在上述软件制品进入制品文件库的同时,基于上述软件制品携带的镜像描述文件,生成上述软件制品对应的镜像文件(docker),并可以将上述软件制品对应的镜像文件推送至容器镜像库进行存储。
[0103]
本发明实施例中可以基于实际部署需求,从容器镜像库中已存储的软件制品中获取目标软件制品。
[0104]
执行目标软件制品可支持的部署模式对应的自动化脚本,将目标软件制品部署至目标资源。
[0105]
具体地,从容器镜像库获取目标软件制品之后,可以部署目标软件制品。
[0106]
目标软件制品在部署过程中,可以基于目标软件制品可支持的部署模式(主机部署模式或镜像部署模式),确定部署的目标资源。
[0107]
目标软件制品部署过程由目标软件制品可支持的部署模式对应的自动化脚本执行,通过执行目标软件制品可支持的部署模式对应的自动化脚本,可以实现将目标软件制品部署至目标资源。
[0108]
本发明实施例通过从容器镜像库已存储的软件制品中获取目标软件制品之后,执行目标软件制品可支持的部署模式对应的自动化脚本,将目标软件制品部署至目标资源,能规范软件制品部署的流程和方式,能满足主机及容器部署模式的软件制品规范要求,能提高软件制品的部署效率和稳定性。
[0109]
基于上述各实施例的内容,在目标软件制品可支持的部署模式包括主机部署模式的情况下,执行目标软件制品可支持的部署模式对应的自动化脚本,将目标软件制品部署至目标资源,包括:执行主机部署模式对应的自动化脚本,并替换主机部署模式对应的自动化脚本中的初始输入变量,以供将目标软件制品部署至目标资源。
[0110]
其中,主机部署模式对应的自动化脚本的初始输入变量是预定义的。
[0111]
具体地,如图3所示,在目标软件制品可支持的部署模式包括主机部署模式的情况下,可以执行主机部署模式对应的自动化脚本,并替换上述自动化脚本中的初始输入变量。
[0112]
上述自动化脚本可以读取预置的部署流水线模板,并可以按照上述部署流水线模板中预设的执行步骤,将目标软件制品部署至目标资源。其中,上述目标资源可以为主机服务器。
[0113]
需要说明的是,主机部署模式对应的自动化脚本的初始输入变量,可以是基于先验知识和/或实际情况预定义的。
[0114]
本发明实施例通过在目标软件制品可支持的部署模式包括主机部署模式的情况下,执行主机部署模式对应的自动化脚本,并替换主机部署模式对应的自动化脚本中的初始输入变量,以供将目标软件制品部署至目标资源,能规范主机部署模式的软件制品部署的流程和方式,能更准确、更高效的实现主机部署模式的软件制品部署。
[0115]
基于上述各实施例的内容,在目标软件制品可支持的部署模式包括容器部署模式的情况下,执行目标软件制品可支持的部署模式对应的自动化脚本,将目标软件制品部署至目标资源,包括:获取目标软件制品对应的镜像文件。
[0116]
具体地,如图3所示,在目标软件制品可支持的部署模式包括容器部署模式的情况下,可以在容器镜像库中查找并获取目标软件制品对应的镜像文件。
[0117]
执行容器部署模式对应的自动化脚本,并替换容器部署模式对应的自动化脚本中
的初始输入变量,以供将镜像文件部署至目标资源。
[0118]
其中,容器部署模式对应的自动化脚本的初始输入参数是预定义的。
[0119]
具体地,如图3所示,获取目标软件制品对应的镜像文件之后,可以执行容器部署模式对应的自动化脚本,并替换上述自动化脚本中的初始输入变量。
[0120]
上述自动化脚本可以读取预置的部署流水线模板,并可以按照上述部署流水线模板中预设的执行步骤,将目标软件制品部署至目标资源。其中,上述目标资源可以为kubernetes。
[0121]
需要说明的是,kubernetes,简称k8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用。
[0122]
需要说明的是,主机部署模式对应的自动化脚本的输出输入变量,可以是基于先验知识和/或实际情况预定义的。
[0123]
可选地,容器部署模式对应的自动化脚本中的初始输入变量,包括容器参数定义、容器扩展参数定义以及应用参数定义。
[0124]
容器参数定义,包括容器副本数、容器cpu上限下限、容器内存上限下限、容器环境变量以及启动参数等的定义。
[0125]
容器扩展参数定义,包括容器访问方式以及容器挂载文件配置的定义。
[0126]
应用参数定义,包括挂载文件中的动态变量的定义。上述应用参数可以在部署目标软件制品时动态替换。
[0127]
本发明实施例通过在目标软件制品可支持的部署模式包括容器部署模式的情况下,获取目标软件制品对应的镜像文件,执行容器部署模式对应的自动化脚本,并替换容器部署模式对应的自动化脚本中的初始输入变量,以供将目标软件制品对应的镜像文件部署至目标资源,能规范容器部署模式的软件制品部署的流程和方式,能更准确、更高效的实现容器部署模式的软件制品部署。
[0128]
基于上述各实施例的内容,在目标软件制品的数量为多个的情况下,从制品文件库中获取目标软件制品之后,还包括:将各目标软件制品,合并为一个软件制品组;
[0129]
图3是本发明提供的软件制品生成方法中生成软件制品组的流程示意图。如图3所示,在从制品文件库中获取多个目标软件制品的情况下,可以将上述各目标软件制品合并为一个软件制品组,从而可以基于上述软件制品组一次性部署多个软件制品。
[0130]
执行软件制品组可支持的部署模式对应的自动化脚本,将软件制品组部署至目标资源。
[0131]
具体地,软件制品组在部署过程中,可以基于软件制品组可支持的部署模式(主机部署模式或镜像部署模式),确定部署的目标资源。
[0132]
软件制品组部署过程由软件制品组可支持的部署模式对应的自动化脚本执行,通过执行软件制品组可支持的部署模式对应的自动化脚本,可以将软件制品组部署至目标资源。
[0133]
可选地,部署后的目标软件制品和/或软件制品组,可以存储至中央制品库。中央制品库可以将目标软件制品和/或软件制品组推送至本地制品库进行存储。
[0134]
本发明实施例通过将多个目标软件制品合并为一个软件制品组之后,执行上述软件制品组可支持的部署模式对应的自动化脚本,将上述软件制品组部署至目标资源,能实
现一次性部署多个软件制品,能提高软件制品的部署效率。
[0135]
图5是本发明提供的软件制品生成装置的结构示意图。下面结合图5对本发明提供的软件制品生成装置进行描述,下文描述的软件制品生成装置与上文描述的本发明提供的软件制品生成方法可相互对应参照。如图5所示,该装置包括:数据获取模块501和制品生成模块502。
[0136]
数据获取模块501,用于获取待制作软件制品对应的目标源代码和目标软件制品模板。
[0137]
制品生成模块502,用于基于目标源代码和目标软件制品模板,生成待制作软件制品。
[0138]
其中,目标软件制品模板基于软件制品格式标准生成;软件制品格式标准定义软件制品模板的文件描述以及目录结构;文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
[0139]
具体地,数据获取模块501和制品生成模块502电连接。
[0140]
数据获取模块501可以用于多种方式获取待制作软件制品对应的目标源代码和目标软件制品模板。例如:开发人员可以基于待制作软件制品的生成需求,编写并输入待制作软件制品对应的目标源代码,开发人员还可以基于待制作软件制品的生成需求和软件制品格式标准,制作并输入待制作软件制品对应的目标软件制品模板,从而可以基于用户的上述输入,获取待制作软件制品对应的目标源代码和目标软件制品模板;又或者,可以基于待制作软件制品的生成需求,从已存储的源代码中,查找并获取待制作软件对应的目标源代码,从已存储的基于软件制品格式标准制作的各软件制品模板中,查找并获取待制作软件对应的目标软件指标模板。
[0141]
制品生成模块502可以用于基于目标源代码和目标软件制品模板,生成待制作软件制品。
[0142]
可选地,制品生成模块502可以具体用于编译目标源代码,获取目标源代码文件可执行程序;合并目标源代码文件可执行程序和目标软件制品模板,获得待制作软件的制品文件;压缩制品文件,获得待制作软件制品。
[0143]
可选地,软件制品生成装置还可以包括签名写入模块以及存储模块。
[0144]
签名写入模块可以用于基于软件制品格式标准中规定的数字签名格式,为待制作软件制品写入数字签名。
[0145]
存储模块可以用于将写有数字签名的待制作软件制品存储至制品文件库。
[0146]
可选地,软件制品生成装置还可以包括软件部署模块。
[0147]
软件部署模块可以用于从制品文件库中获取目标软件制品;执行目标软件制品可支持的部署模式对应的自动化脚本,将目标软件制品部署至目标资源。
[0148]
可选地,软件部署模块还可以包括主机部署单元和容器部署单元。
[0149]
在目标软件制品可支持的部署模式为主机部署模式的情况下,主机部署单元可以用于执行主机部署模式对应的自动化脚本,并替换主机部署模式对应的自动化脚本中的初始输入变量,以供将目标软件制品部署至目标资源;其中,主机部署模式对应的自动化脚本的初始输入变量是预定义的。
[0150]
在目标软件制品可支持的部署模式为容器部署模式的情况下,容器部署单元可以
用于获取目标软件制品对应的镜像文件;执行容器部署模式对应的自动化脚本,并替换容器部署模式对应的自动化脚本中的初始输入变量,以供将镜像文件部署至目标资源;其中,容器部署模式对应的自动化脚本的初始输入参数是预定义的。
[0151]
可选地,软件部署模块还可以包括合并单元。
[0152]
合并单元可以用于将各目标软件制品,合并为一个软件制品组;执行软件制品组可支持的部署模式对应的自动化脚本,将软件制品组部署至目标资源。
[0153]
通常情况下,软件制品由应用程序、中间件以及软件产品等多种组件组合而成。
[0154]
本发明实施例中的软件制品生成装置,可以获取基于软件制品格式标准生成的待制作软件制品对应的目标软件制品模板,从而可以基于上述目标软件制品模板和待制作软件制品对应的目标源代码,将待制作软件制品中的应用程序、中间件以及软件产品等,按软件制品格式标准进行打包,生成待制作软件制品。
[0155]
生成待制作软件制品之后,可以为待制作软件制品写入数字签名,防止待制作软件制品在传递过程中被篡改。
[0156]
为待制作软件制品写入数字签名之后,可以将上述待制作软件制品存储至制品文件库等待部署。
[0157]
需要说明的是,制品文件库中的每一软件制品可支持同时存在任意多版本。
[0158]
本发明实施例中的软件制品生成装置,还可以从制品文件库中选择软件制品或软件制品组进行部署。
[0159]
部署之前可以通过验证数字签名,以保证软件制品或软件制品组的安全。
[0160]
验证通过之后执行正式的部署操作,部署模式根据软件制品或软件制品组的部署模式,可选择主机直接部署或kubernetes容器部署等方式,并最终通过执行自动化脚本将软件制品或软件制品组部署到主机服务器或kubernetes容器中。
[0161]
本发明实施例中的软件制品生成装置,通过获取待制作软件制品对应的目标源代码和目标软件制品模板之后,基于上述目标源代码和目标软件制品模板,生成待制作软件制品,目标软件制品模板基于软件制品格式标准生成,上述软件制品格式标准用于定义软件制品模板的文件描述以及目录结构,文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义,能基于上述软件制品格式标准,规范软件制品生成的流程和方式,能避免开发人员的执行水平以及个人经验对软件制品的交付标准的影响,从而能提高软件制品的质量稳定性,能降低生成软件制品时所需投入的人工成本和时间成本,能提高软件制品的生成效率。
[0162]
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行软件制品生成方法,该方法包括:获取待制作软件制品对应的目标源代码和目标软件制品模板;基于目标源代码和目标软件制品模板,生成待制作软件制品;其中,目标软件制品模板基于软件制品格式标准生成;软件制品格式标准用于定义软件制品模板的文件描述以及目录结构;文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
[0163]
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为
独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0164]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的软件制品生成方法,该方法包括:获取待制作软件制品对应的目标源代码和目标软件制品模板;基于目标源代码和目标软件制品模板,生成待制作软件制品;其中,目标软件制品模板基于软件制品格式标准生成;软件制品格式标准用于定义软件制品模板的文件描述以及目录结构;文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
[0165]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的软件制品生成方法,该方法包括:获取待制作软件制品对应的目标源代码和目标软件制品模板;基于目标源代码和目标软件制品模板,生成待制作软件制品;其中,目标软件制品模板基于软件制品格式标准生成;软件制品格式标准用于定义软件制品模板的文件描述以及目录结构;文件描述包括制品名称命名定义、版本定义、应用参数定义以及容器扩展参数定义。
[0166]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0167]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0168]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献