掌桥专利:专业的专利平台
掌桥专利
首页

一种云编译方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:26:00


一种云编译方法、装置、电子设备及存储介质

技术领域

本发明涉及编译技术领域,尤其涉及一种云编译方法、装置、电子设备及存储介质。

背景技术

伴随软件版本的更新迭代,软件的运行环境也在迭代,运行环境分为硬件层面的计算机算力环境,和软件层面的类库环境。在代码的版本管理上,有类似于“git”等优秀的版本控制软件,但是在环境管理上依旧欠缺。

目前,现有技术存在以下一些问题,包括:配置环境繁琐且容易出错,需要大量人工配置时间成本;无法对环境进行有效的版本控制;系统无法高效调度硬件资源去适配代码的需求。

另外,开发团队的开发环境存在差异,但由于项目迭代存在统一的需求。维护环境版本统一会浪费大量的时间成本,并且在多台机器上部署同一环境,会对计算机资源造成浪费。

发明内容

本发明提供了一种云编译方法、装置、电子设备及存储介质,用于解决现有的编译方法存在无法有效进行环境版本管理以及存在计算机资源浪费的技术问题。

本发明提供了一种云编译方法,所述方法包括:

通过预设前端服务器获取软件代码;

对所述代码进行格式校验;

当校验通过时,识别所述软件代码获取环境分析信息;

根据所述环境分析信息从预设容器引擎中调度适配环境;

将所述软件代码传输至所述适配环境中,并在所述适配环境中执行所述软件代码,生成执行结果;

将所述执行结果发送至所述前端服务器,并展示所述执行结果。

可选地,所述识别所述软件代码获取环境分析信息的步骤,包括:

在所述软件代码中引入预设外部类库的特征码;

采用所述特征码对所述软件代码进行识别,确定目标类库;

获取所述目标类库的先验历史经验;

采用所述先验历史经验计算环境分析信息。

可选地,所述根据所述环境分析信息从预设容器引擎中调度适配环境的步骤,包括:

根据所述环境分析信息,生成环境调度请求;

响应所述环境调度请求,判断所述容器引擎中是否存在适配环境;

若是,判断所述适配环境是否已激活;

若激活,则调度所述适配环境。

可选地,还包括:

实时更新所述适配环境的调用频率;

当所述适配环境的调用频率达到预设频率阈值时,休眠所述适配环境;

当所述适配环境的调用频率未达到所述预设频率阈值时,判断所述适配环境是否过载;

若过载,则休眠所述适配环境。

可选地,还包括:

若所述容器引擎中未存在适配环境,则调用预设环境自适应模块生成所述环境分析信息对应的适配环境,并激活环境分析信息对应的适配环境。

本发明还提供了一种云编译装置,所述方法包括:

获取模块,用于通过预设前端服务器获取软件代码;

格式校验模块,用于对所述代码进行格式校验;

识别模块,用于当校验通过时,识别所述软件代码获取环境分析信息;

调度模块,用于根据所述环境分析信息从预设容器引擎中调度适配环境;

执行模块,用于将所述软件代码传输至所述适配环境中,并在所述适配环境中执行所述软件代码,生成执行结果;

展示模块,用于将所述执行结果发送至所述前端服务器,并展示所述执行结果。

可选地,所述识别模块,包括:

引入子模块,用于在所述软件代码中引入预设外部类库的特征码;

目标类库确定子模块,用于采用所述特征码对所述软件代码进行识别,确定目标类库;

先验历史经验获取子模块,用于获取所述目标类库的先验历史经验;

环境分析信息计算子模块,用于采用所述先验历史经验计算环境分析信息。

可选地,所述调度模块,包括:

请求生成子模块,用于根据所述环境分析信息,生成环境调度请求;

判断子模块,用于响应所述环境调度请求,判断所述容器引擎中是否存在适配环境;

激活判断子模块,用于若是,判断所述适配环境是否已激活;

调度子模块,用于若激活,则调度所述适配环境。

本发明还提供了一种电子设备,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行如上任一项所述的云编译方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的云编译方法。

从以上技术方案可以看出,本发明具有以下优点:本发明提供了一种云编译方法,并具体公开了:通过前端服务器获取代码;对代码进行格式校验;当校验通过时,识别代码获取环境分析信息;根据环境分析信息从预设容器引擎中调度适配环境;将代码传输至适配环境中,并在适配环境中执行代码,生成执行结果;将执行结果发送至前端服务器,并展示执行结果。

本发明通过对代码进行识别来获取环境分析信息,以根据环境分析信息调度适配环境,从而使得环境版本等信息可以适配不同版本软件的代码,从而实现对环境的版本控制。同时,通过对环境的适配调度,可以有效进行负载均衡,节约计算机资源。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种云编译系统的架构图;、

图2为本发明实施例提供的环境版本控制示意图;

图3为本发明实施例提供的一种云编译方法的步骤流程图;

图4为本发明实施例提供的云编译方法的编译过程图;

图5为本发明另一实施例提供的一种云编译方法的步骤流程图;

图6为本发明实施例提供的软件代码的环境分析信息计算流程图;

图7为本发明实施例提供的负载均衡过程示意图;

图8为本发明实施例提供的一种云编译装置的结构框图。

具体实施方式

本发明实施例提供了一种云编译方法、装置、电子设备及存储介质,用于解决现有的编译方法存在无法有效进行环境版本管理以及存在计算机资源浪费的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,图1为本发明实施例提供的一种云编译系统的架构图。

如图1所示,本发明实施例所提供的云编译系统,包括Vue前端服务器、后端服务器、容器引擎和数据库;其中,后端服务器分别与Vue前端服务器、数据库相互通信,后端服务器与容器引擎通信。

其中,在实际应用中,可以通过系统自带的安装模块,为服务器端搭建前端及后端运行环境;以及更新容器引擎环境,并安装容器引擎;此外,还可以安装预先指定的代码运行环境。

Vue前端服务器携带有web可视化模块,web可视化模块可以为用户提供图形化交互界面,以方便对系统进行管理和操作,其主要提供以下功能:环境管理功能;环境版本控制功能;代码在线编译功能;代码项目管理功能和代码开发辅助功能。

后端服务器携带有环境自适应模块、环境版本控制模块和环境调度模块。其中,环境自适应模块可以通过对代码中引入外部类库的特征码进行识别并分析出需要使用的类库,并根据使用这些类库的先验历史经验预先计算出环境分析信息。

环境版本控制模块用于记录环境版本的更迭并对更改进行备份存储,同时支持团队软件版本的共享和同步,具体如图2所示。团队环境仓库内记录环境更迭的软件包配置项和相应代码运行所需的算力资源配置,可以通过克隆到个人环境仓库中,最后配置为工作区环境,用作本地编码使用。

环境调度模块用于根据环境调度请求以及定时轮询对环境负载进行动态调整。

请参阅图3,图3为本发明实施例提供的一种云编译方法的步骤流程图。

基于图1所提供的云编译系统,本发明提供了一种云编译方法,具体可以包括以下步骤:

步骤301,通过预设前端服务器获取软件代码;

步骤302,对软件代码进行格式校验;

在本发明实施例中,可以通过预设前端服务器编写软件代码,并由预设的可视化模块审查校验软件代码的代码格式。

步骤303,当校验通过时,识别软件代码获取环境分析信息;

当通过校验时,可以对软件代码进行识别,以获取环境分析信息。其中,环境分析信息可以是通过历史环境数据分析得到的信息。

步骤304,根据环境分析信息从预设容器引擎中调度适配环境;

在本发明实施例中,容器引擎中存储了不同类型,不同版本的运行环境,可适配不同要求的软件。当获取到软件代码的环境分析信息时,可以根据环境分析信息从容器引擎中调度适配环境。

步骤305,将软件代码传输至适配环境中,并在适配环境中执行软件代码,生成执行结果;

步骤306,将执行结果发送至前端服务器,并展示执行结果。

在获取到软件代码的适配环境中,将软件代码传输至该适配环境中,并在该适配环境中执行软件代码,完成软件代码的编译,得到执行结果。最后将执行结果返回前端服务器,通过前端服务器的可视化模块进行展示。具体编译过程如图4所示。

本发明通过对代码进行识别来获取环境分析信息,以根据环境分析信息调度适配环境,从而使得环境版本等信息可以适配不同版本软件的代码,从而实现对环境的版本控制。同时,通过对环境的适配调度,可以有效进行负载均衡,节约计算机资源。

请参阅图5,图5为本发明另一实施例提供的一种云编译方法的步骤流程图。具体可以包括以下步骤:

步骤501,通过预设前端服务器获取软件代码;

步骤502,对软件代码进行格式校验;

在本发明实施例中,步骤501-502与步骤301-302相同,具体内容可参考步骤301-302的描述,此处不再赘述。

步骤503,在软件代码中引入预设外部类库的特征码;

步骤504,采用特征码对软件代码进行识别,确定目标类库;

步骤505,获取目标类库的先验历史经验;

步骤506,采用先验历史经验计算环境分析信息;

在本发明实施例中,本发明可以通过在软件代码中引入预设外部类库的特征码来对软件代码进行识别,从而确定目标类库;并根据目标类库的先验历史经验计算软件代码的环境分析信息。

在具体实现中,如图6所示,计算软件代码的环境分析信息的流程如下:

读取软件代码的项目目录;

判断项目目录中是否存在文件;

当项目目录中不存在文件时,输出提示:目录选择错误,重新选择;

当项目目录中存在文件时,读取下一个文件;

读取该文件的下一行;

识别该行特征;

根据该行特征判断是否存在类库导入信息;

若是,记录库文件,调用先验数据库计算基础硬件环境,并判断是否还有下一行;

若存在类库导入信息,则直接判断是否还有下一行,若存在下一行,则跳转至读取该文件的下一行的操作,直至该文件不存在下一行;

接着判断是否存在下一个文件,若存在下一个文件,则跳转至读取下一个文件的操作,直至不存在下一个文件;

当所有文件都已读完时,根据所记录的记录硬件环境输出环境分析信息。

步骤507,根据环境分析信息从预设容器引擎中调度适配环境;

在本发明实施例中,步骤507可以包括以下子步骤:

根据环境分析信息,生成环境调度请求;

响应环境调度请求,判断容器引擎中是否存在适配环境;

若是,判断适配环境是否已激活;

若激活,则调度适配环境。

在具体实现中,如图7所示,当接收到环境调度请求时,可以判断容器引擎中是否存在满足条件的适配环境,若存在,则判断适配环境是否已激活,当适配环境已激活时,则表征该适配环境符合编译需求,此时可以返回环境调用接口,以通过该环境调用接口调用对应的适配环境。

进一步地,若容器引擎中未存在适配环境,则调用预设环境自适应模块生成环境分析信息对应的适配环境,并激活环境分析信息对应的适配环境。

在具体实现中,如图7所示,若容器引擎中未存在适配环境,则可以调用环境自适应模块生成环境分析信息对应的适配环境,并激活该适配环境。

进一步地,在完成对适配环境的调度后,还可以通过以下操作来对负载进行均衡,以避免过载现象。

实时更新适配环境的调用频率;

当适配环境的调用频率达到预设频率阈值时,休眠适配环境;

当适配环境的调用频率未达到预设频率阈值时,判断适配环境是否过载;

若过载,则休眠适配环境。

在具体实现中,如图7所示,在每次完成对适配环境的调度后,都需要实时更新所调用的适配环境的调用频率,并在该调用频率达到预设频率阈值时,休眠该适配环境并释放资源,当适配环境的调用频率并未达到预设频率阈值时,需要判断容器环境是否过载,以避免对适配环境的过载调用,若过载,则休眠该适配环境并释放资源。

步骤508,将软件代码传输至适配环境中,并在适配环境中执行软件代码,生成执行结果;

步骤509,将执行结果发送至前端服务器,并展示执行结果。

在获取到软件代码的适配环境中,将软件代码传输至该适配环境中,并在该适配环境中执行软件代码,可以完成软件代码的编译,得到执行结果。最后将执行结果返回前端服务器,通过前端服务器的可视化模块进行展示。

本发明通过对代码进行识别来获取环境分析信息,以根据环境分析信息调度适配环境,从而使得环境版本等信息可以适配不同版本软件的代码,从而实现对环境的版本控制。同时,通过对环境的适配调度,可以有效进行负载均衡,节约计算机资源。

请参阅图8,图8为本发明实施例提供的一种云编译装置的结构框图。

本发明实施例提供了一种云编译装置,方法包括:

获取模块801,用于通过预设前端服务器获取软件代码;

格式校验模块802,用于对代码进行格式校验;

识别模块803,用于当校验通过时,识别软件代码获取环境分析信息;

调度模块804,用于根据环境分析信息从预设容器引擎中调度适配环境;

执行模块805,用于将软件代码传输至适配环境中,并在适配环境中执行软件代码,生成执行结果;

展示模块806,用于将执行结果发送至前端服务器,并展示执行结果。

在本发明实施例中,识别模块803,包括:

引入子模块,用于在软件代码中引入预设外部类库的特征码;

目标类库确定子模块,用于采用特征码对软件代码进行识别,确定目标类库;

先验历史经验获取子模块,用于获取目标类库的先验历史经验;

环境分析信息计算子模块,用于采用先验历史经验计算环境分析信息。

在本发明实施例中,调度模块804,包括:

请求生成子模块,用于根据环境分析信息,生成环境调度请求;

判断子模块,用于响应环境调度请求,判断容器引擎中是否存在适配环境;

激活判断子模块,用于若是,判断适配环境是否已激活;

调度子模块,用于若激活,则调度适配环境。

在本发明实施例中,调度模块804,还包括:

更新子模块,用于实时更新适配环境的调用频率;

第一休眠子模块,用于当适配环境的调用频率达到预设频率阈值时,休眠适配环境;

过载判断子模块,用于当适配环境的调用频率未达到预设频率阈值时,判断适配环境是否过载;

第二休眠子模块,用于若过载,则休眠适配环境。

在本发明实施例中,调度模块804,还包括:

适配环境生成子模块,用于若容器引擎中未存在适配环境,则调用预设环境自适应模块生成环境分析信息对应的适配环境,并激活环境分析信息对应的适配环境。

本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:

存储器用于存储程序代码,并将程序代码传输给处理器;

处理器用于根据程序代码中的指令执行本发明任一实施例的云编译方法。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明任一实施例的云编译方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 一种云编译方法、装置、电子设备及存储介质
  • 编译方法、编译装置、电子设备、存储介质和程序产品
技术分类

06120112923398