[发明专利]软件包构建方法以及装置在审
申请号: | 202211304217.2 | 申请日: | 2022-10-24 |
公开(公告)号: | CN115639986A | 公开(公告)日: | 2023-01-24 |
发明(设计)人: | 安凯歌;朱云锋;李雪江;石超 | 申请(专利权)人: | 阿里巴巴(中国)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京智信禾专利代理有限公司 11637 | 代理人: | 张瑞 |
地址: | 311121 浙江省杭州市余杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件包 构建 方法 以及 装置 | ||
1.一种软件包构建方法,包括:
获取C/C++语言的源码描述文件,根据所述源码描述文件确定依赖关系描述,其中,所述源码描述文件包含代码的构建指令;
基于构建C/C++语言的代码所需要的编译工具链,确定代码构建容器环境;
在所述代码构建容器环境中,根据所述依赖关系描述执行对应的源码描述文件中的构建指令,得到目标软件包。
2.根据权利要求1所述的方法,所述根据所述源码描述文件确定依赖关系描述,包括:
根据所述源码描述文件确定软件包之间的依赖关系;
根据所述软件包之间的依赖关系以及所述软件包的名称和版本标识,构建以软件包为节点的依赖关系描述。
3.根据权利要求2所述的方法,还包括:
根据所述依赖关系描述查找软件包名称相同且版本标识不同的软件包节点;
将所述软件包名称相同且版本标识不同的软件包节点对应的版本标识替换为统一版本标识。
4.根据权利要求3所述的方法,所述根据所述依赖关系描述查找软件包名称相同且版本标识不同的软件包节点,包括:
对所述依赖关系描述进行广度优先遍历查找软件包名称相同且版本标识不同的软件包节点。
5.根据权利要求1所述的方法,所述基于构建C/C++语言的代码所需要的编译工具链,确定代码构建容器环境,包括:
根据所述源码描述文件中的构建指令从工具链中选择目标工具,所述工具链包括:编译器工具链、操作系统工具链和处理器架构工具链;
根据所述目标工具生成代码构建容器环境。
6.根据权利要求2所述的方法,所述根据所述依赖关系描述执行所述构建指令,得到所述目标软件包,包括:
根据所述依赖关系描述获取各个软件包节点对应的软件包;
按照所述依赖关系描述,执行各个软件包节点在所述源码描述文件中对应的构建指令,生成所述目标软件包。
7.根据权利要求6所述的方法,所述根据所述依赖关系描述获取各个软件包节点对应的软件包,包括:
从软件包缓存中获取各个软件包节点对应的软件包;在软件包缓存中不存在要获取的任一个或多个软件包的情况下,获取所述任一个或多个软件包的源码描述文件,根据所述任一个或多个软件包的源码描述文件生成对应的软件包。
8.根据权利要求1所述的方法,还包括:
将所述目标软件包发布至软件包缓存。
9.一种软件包构建方法,应用于分布式系统中的节点,所述方法包括:
获取C/C++语言的源码描述文件,根据所述源码描述文件确定依赖关系描述,其中,所述源码描述文件包含代码的构建指令;
确定其他节点中代码构建容器环境,并根据所述依赖关系描述将所述构建指令分发至所述其他节点,其中,所述代码构建环境中包括构建C/C++语言的代码所需要的编译工具链;
接收所述其他节点发送的指令执行结果,根据所述指令执行结果得到所述目标软件包。
10.一种软件包构建装置,包括:
关系确定模块,被配置为获取C/C++语言的源码描述文件,根据所述源码描述文件确定依赖关系描述,其中,所述源码描述文件包含代码的构建指令;
环境确定模块,被配置为确定代码构建容器环境,其中,所述代码构建环境中包括构建C/C++语言的代码所需要的编译工具链;
指令执行模块,被配置为在所述代码构建容器环境中,根据所述依赖关系描述执行对应的源码描述文件中的构建指令,得到目标软件包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴(中国)有限公司,未经阿里巴巴(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211304217.2/1.html,转载请声明来源钻瓜专利网。