一种应用编译方法、装置、计算设备及存储介质与流程

文档序号:35983592发布日期:2023-11-10 03:34阅读:36来源:国知局
一种应用编译方法、装置、计算设备及存储介质与流程

本发明涉及应用开发领域,特别涉及一种应用编译方法、装置、计算设备及存储介质。


背景技术:

1、随着计算机中各种应用被开发出来,应用的安装方式也变得多元化。在对应用进行安装时,可采用源码包或二进制包的方式进行安装。二进制包相对于源码包安装更为简单,二进制包已经过编译,安装速度比源码包安装快,并且安装过程中不容易出错。

2、现有技术中,debian系统可通过构建软件包工具dpkg构建二进制包。构建过程中,debian通过源码目录里的debian目录管理软件包的元信息,如debian/control文件描述源码包信息、deb软件包信息及依赖关系;debian/rules描述构建过程执行的动作;debian/changelog描述软件包源码版本迭代信息等。debian目录下的配置文件会随着软件包的复杂程度而增加;并且在构建时基于chroot环境进行构建,如pbuilder、cowbuilder等。

3、现有技术的这种二进制包生成方式存在学习成本较高的问题,由于debian工程文件编写难度大,需要系统性学习debian构建规范。并且在构建时使用chroot环境,只在文件系统层面做到了隔离,安全性较弱。

4、为此,需要一种新的应用编译方法和装置。


技术实现思路

1、为此,本发明提供一种应用编译方法,以力图解决或者至少缓解上面存在的问题。

2、根据本发明的第一方面,提供一种应用编译方法,适于在计算设备中运行,方法包括:解析工程文件,工程文件包括:源码信息、基础环境信息、依赖信息、构建系统信息和变量信息;根据源码信息获取源码文件;根据基础环境信息获取基础环境文件;根据依赖信息获取依赖文件;根据构建系统信息、基础环境文件和源码文件生成构建脚本;设置容器,并根据变量信息和依赖文件在容器中执行构建脚本生成编译应用文件。

3、可选的,在根据本发明的方法中,工程文件存储在工程目录下,工程目录通过执行初始化工程文件命令进行创建。

4、可选的,在根据本发明的方法中,根据源码信息获取源码文件包括:对源码信息中的源码类型字段进行解析确定源码类型;根据源码类型从相应存储位置获取源码文件。

5、可选的,在根据本发明的方法中,源码类型包括:压缩包、远程代码仓库和本地代码。

6、可选的,在根据本发明的方法中,工程文件还包括产物信息。

7、可选的,在根据本发明的方法中,基础环境信息根据产物信息的产物类型字段确定,产物类型字段包括应用、运行时环境文件、库文件,当产物类型字段为应用时,基础环境信息为运行时环境信息;当产物类型字段为运行时环境文件或库文件时,基础环境信息为基本环境信息。

8、可选的,在根据本发明的方法中,根据基础环境信息获取基础环境文件包括:当基础环境信息为运行时环境信息时,根据运行时环境信息获取运行时环境文件;根据运行时环境信息确定基本环境信息,根据基本环境信息获取基本环境文件,将运行时环境文件和基本环境文件作为基础环境文件。

9、可选的,在根据本发明的方法中,还包括:当基础环境信息为基本环境信息时,根据基本环境信息获取基本环境文件,作为基础环境文件。

10、可选的,在根据本发明的方法中,根据依赖信息获取依赖文件包括:将依赖文件存储到本地代码仓库,以便根据本地代码仓库的依赖文件再次生成编译应用文件;将本地代码仓库的依赖文件存储到构建工作目录,以便挂载到容器生成编译应用文件。

11、可选的,在根据本发明的方法中,还包括:判断是否存在历史构建记录;若存在历史构建记录,则获取历史构建记录中记载的依赖文件。

12、可选的,在根据本发明的方法中,构建系统信息包括cmake、qmake、自动构建工具和自定义构建,根据构建系统信息、基础环境文件和源码文件生成构建脚本包括:基于构建系统信息所记载的不同构建系统,根据基础环境文件和源码文件生成构建脚本。

13、可选的,在根据本发明的方法中,还包括:成功生成编译应用文件后,记录此次编译使用的依赖文件,生成历史构建记录。

14、可选的,在根据本发明的方法中,还包括:将编译应用文件存储到本地代码仓库,以便根据本地代码仓库查找编译应用文件。

15、可选的,在根据本发明的方法中,还包括:执行测试构建产物命令,包括:根据工程文件的产物信息确定软件包名;根据软件包名在本地代码仓库中查询是否存在成功构建的编译应用文件;若存在编译应用文件,则设置容器,并在容器中根据运行时环境文件运行编译应用文件,对编译应用文件进行测试。

16、可选的,在根据本发明的方法中,还包括:执行推送构建产物命令,包括:与服务端建立通信连接,并从服务端获取应用标识;根据应用标识和编译应用文件生成传输文件,发送到服务端。

17、可选的,在根据本发明的方法中,还包括:获取服务端对传输文件中应用标识进行校验的校验信息;根据校验信息确定上传结果。

18、根据本发明的第二方面,提供了一种应用编译装置,适于驻留在计算设备中,装置包括:编译模块、容器模块、代码仓库模块、文件系统模块和服务端模块,编译模块适于执行编译流程命令,包括:对工程文件进行解析获取源码文件,工程文件包括源码信息、基础环境信息、依赖信息、构建系统信息和变量信息;根据源码信息获取源码文件;根据基础环境信息获取基础环境文件;根据依赖信息获取依赖文件;根据构建系统信息、基础环境文件和源码文件生成构建脚本;根据容器模块设置容器,并根据变量信息和依赖文件在容器中执行构建脚本,生成编译应用文件;文件系统模块适于将编译应用文件存放到相应目录,并将相应目录挂载到本地代码仓库;代码仓库模块适于提供本地代码仓库,适于在获取依赖文件后存储依赖文件,并在生成编译应用文件后存储编译应用文件,将编译应用文件提交到服务端;服务端模块适于提供服务端,存储代码仓库模块提交的编译应用文件。

19、根据本发明的第三方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中,一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的应用编译方法的指令。

20、根据本发明的第四方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的应用编译方法。

21、本发明中的应用编译方法,适于在计算设备中执行,方法包括解析工程文件,工程文件包括源码信息、基础环境信息、依赖信息、构建系统信息和变量信息;根据源码信息获取源码文件;根据基础环境信息获取基础环境文件;根据依赖信息获取依赖文件;根据构建系统信息、基础环境文件和源码文件生成构建脚本;设置容器,并根据变量信息和依赖文件在容器中执行构建脚本生成编译应用文件。通过本发明的应用编译方法,能够通过较为简单的工程文件生成编译应用文件,降低应用编译难度和复杂度,提高应用编译效率;并且在编译时使用容器环境进行构建,避免编译过程对宿主机造成影响,安全性较高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1