一种软件构建方法、计算机可读存储介质及电子设备技术

技术编号:38628660 阅读:16 留言:0更新日期:2023-08-31 18:28
本发明专利技术涉及计算机技术领域,具体提供一种软件构建方法、计算机可读存储介质及电子设备,旨在解决现有云端线上软件构建效率低且容易出现误写入操作的的问题。为此目的,本发明专利技术的软件构建包括:将远程缓存目录挂载到本地缓存目录下;获取待构建的源代码;基于本地缓存目录中的依赖包,对源代码进行本地构建。该方法可以避免重复下载以及重复构建相同的依赖库,降低了网络状况的影响,且有利于保证依赖库版本的一致性。另外,将挂载到本地的远程缓存当作只读缓存,而所有的写操作都在本地,避免对远程缓存的误写入操作以及频繁写入挂载的远程缓存所带来的网络延时和硬件性能的影响,极大地提高了构建效果。极大地提高了构建效果。极大地提高了构建效果。

【技术实现步骤摘要】
一种软件构建方法、计算机可读存储介质及电子设备


[0001]本专利技术涉及计算机
,具体提供一种软件构建方法、计算机可读存储介质及电子设备。

技术介绍

[0002]随着互联网技术的发展,各种软件层出不穷,且同一软件也会不断更新功能进行软件升级。在这些软件开发过程中,软件构建是一个比较重要的环节,通过进行软件构建可以将开发环境编写的源代码转换成生产环境的制品,如可执行文件、库文件等。
[0003]相关技术中,在进行软件构建时通常采用云端线上构建的方式,使用远程缓存目录执行写操作,该方法一方面容易受到网络状况、公共资源性能等因素的影响,大大降低了构建效率;另一方面,所有模块使用同一远程缓存目录执行写操作,有误写入污染缓存的风险;此外,如果前一次构建出现构建失败、取消或超时等情况,会导致构建异常中断,远程缓存目录中是死锁状态,后续无法继续构建。

技术实现思路

[0004]本专利技术旨在解决上述技术问题,即,解决现有云端线上软件构建效率低且容易出现误写入操作的问题。
[0005]在第一方面,本专利技术提供一种软件构建方法,所述方法包括:
[0006]将远程缓存目录挂载到本地缓存目录下;
[0007]获取待构建的源代码;
[0008]基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建。
[0009]在一些实施例中,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建之前,所述方法还包括:
[0010]定义配置信息,所述配置信息包括待构建的源代码所需要的依赖包信息;
[0011]基于所述依赖包信息,从所述本地缓存目录读取需要的依赖包并生成构建文件,所述构建文件包括所述需要的依赖包的头文件和库路径。
[0012]在一些实施例中,所述基于所述依赖包信息,从所述本地缓存目录读取需要的依赖包并生成构建文件之后,所述方法还包括:
[0013]生成锁文件,所述锁文件用于锁定包管理工具的配置信息。
[0014]在一些实施例中,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建,包括:
[0015]基于所述需要的依赖包的头文件和库路径链接到目标依赖包;
[0016]基于所述目标依赖包对所述源代码进行编译。
[0017]在一些实施例中,所述将远程缓存目录挂载到本地缓存目录下之前,所述方法还包括:
[0018]启动本地容器,并在所述本地容器中安装包管理工具。
[0019]在一些实施例中,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建之前,所述方法还包括:
[0020]创建本地编译目录;
[0021]将所述本地缓存目录符号链接到所述本地编译目录。
[0022]在一些实施例中,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建,包括:
[0023]读取所述本地编译目录中的文件并根据与所读取的文件对应的符号链接指向所述本地缓存目录;
[0024]使用所述本地缓存目录中的依赖包对源代码进行编译。
[0025]在一些实施例中,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建之前,所述方法还包括:
[0026]检查所述本地缓存目录中是否存在锁文件;
[0027]若存在,则清除所述锁文件。
[0028]在一些实施例中,所述检查所述本地缓存目录中是否存在锁文件,包括:启动定时任务,检查所述本地缓存目录中是否存在锁文件。
[0029]在一些实施例中,所述对所述源代码进行本地构建之后,所述方法还包括:
[0030]将构建得到的软件包上传至云端。
[0031]在第二方面,本专利技术提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的软件构建方法。
[0032]在第三方面,本专利技术提供了一种电子设备,其包括:
[0033]至少一个处理器;
[0034]以及,与所述至少一个处理器通信连接的存储器;
[0035]其中,所述存储器中存储有计算机程序,所述计算机程序被所述至少一个处理器执行时实现上述任一项所述的软件构建方法。
[0036]在采用上述技术方案的情况下,本专利技术能够通过将远程缓存目录挂载到本地缓存目录下;获取待构建的源代码;基于本地缓存目录中的依赖包,对源代码进行本地构建。该方法可以避免重复下载以及重复构建相同的依赖库,降低了网络状况的影响,且有利于保证依赖库版本的一致性。另外,将挂载到本地的远程缓存当作只读缓存,而所有的写操作都在本地,避免对远程缓存的误写入操作以及频繁写入挂载的远程缓存所带来的网络延时和硬件性能的影响,极大地提高了构建效果。
[0037]方案1.一种软件构建方法,其特征在于,所述方法包括:
[0038]将远程缓存目录挂载到本地缓存目录下;
[0039]获取待构建的源代码;
[0040]基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建。
[0041]方案2.根据方案1所述的方法,其特征在于,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建之前,所述方法还包括:
[0042]定义配置信息,所述配置信息包括待构建的源代码所需要的依赖包信息;
[0043]基于所述依赖包信息,从所述本地缓存目录读取需要的依赖包并生成构建文件,
所述构建文件包括所述需要的依赖包的头文件和库路径。
[0044]方案3.根据方案2所述的方法,其特征在于,所述基于所述依赖包信息,从所述本地缓存目录读取需要的依赖包并生成构建文件之后,所述方法还包括:
[0045]生成锁文件,所述锁文件用于锁定包管理工具的配置信息。
[0046]方案4.根据方案2或3所述的方法,其特征在于,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建,包括:
[0047]基于所述需要的依赖包的头文件和库路径链接到目标依赖包;
[0048]基于所述目标依赖包对所述源代码进行编译。
[0049]方案5.根据方案1所述的方法,其特征在于,所述将远程缓存目录挂载到本地缓存目录下之前,所述方法还包括:
[0050]启动本地容器,并在所述本地容器中安装包管理工具。
[0051]方案6.根据方案1所述的方法,其特征在于,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建之前,所述方法还包括:
[0052]创建本地编译目录;
[0053]将所述本地缓存目录符号链接到所述本地编译目录。
[0054]方案7.根据方案6所述的方法,其特征在于,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建,包括:
[0055]读取所述本地编译目录中的文件并根据与所读取的文件对应的符号链接指向所述本地缓存目录;
[0056]使用所述本地缓存目录中的依赖包对源代码进行编译。...

【技术保护点】

【技术特征摘要】
1.一种软件构建方法,其特征在于,所述方法包括:将远程缓存目录挂载到本地缓存目录下;获取待构建的源代码;基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建。2.根据权利要求1所述的方法,其特征在于,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建之前,所述方法还包括:定义配置信息,所述配置信息包括待构建的源代码所需要的依赖包信息;基于所述依赖包信息,从所述本地缓存目录读取需要的依赖包并生成构建文件,所述构建文件包括所述需要的依赖包的头文件和库路径。3.根据权利要求2所述的方法,其特征在于,所述基于所述依赖包信息,从所述本地缓存目录读取需要的依赖包并生成构建文件之后,所述方法还包括:生成锁文件,所述锁文件用于锁定包管理工具的配置信息。4.根据权利要求2或3所述的方法,其特征在于,所述基于所述本地缓存目录中的依赖包,对所述源代码进行本地构建,包括:基于所述需要的依赖包的头文件和库路径链接到目标依赖包;基于所述目标依赖包对所述源代码进行编译。5.根据权利要求1所述的方法,其特征在于,所述将远程缓存目录挂载到本地缓存目录下之前,所述...

【专利技术属性】
技术研发人员:刘亚克郎国育牛中华杨清峰
申请(专利权)人:安徽蔚来智驾科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1