一种批量软件自动化构建的方法技术

技术编号:38029269 阅读:12 留言:0更新日期:2023-06-30 10:55
本发明专利技术公开一种批量软件自动化构建的方法,在Linux和Kylin系统上构建软件,具体包括以下步骤:利用AI神经网络模型分析软件的各源码说明文件,提取出依赖安装、配置或编译的信息;编写正则表达式抓取软件的各源码说明文件中的依赖安装、配置或编译的信息;对比分析上述两种方法获取的信息,综合决策;若利用上述两种方法均无法获取相关信息,则通过遍历的方法遍历源码目录首层文件夹中配置文件信息,选择合适的默认编译方法;抓取编译时打印的信息,利用正则方法抓取关键的标志信息,判断编译是否成功。通过本发明专利技术,建立了一个通用的方法,极大简化了开发者日常工作中软件构建的工作,能够快速进行大量代码包的构建工作。能够快速进行大量代码包的构建工作。能够快速进行大量代码包的构建工作。

【技术实现步骤摘要】
一种批量软件自动化构建的方法


[0001]本专利技术涉及LINUX和Kylin系统的软件构建
,具体为一种批量软件自动化构建的方法。

技术介绍

[0002]当前,操作系统关系着国家安全,以麒麟为代表的国产操作系统经过多年发展,已经对外推出多个较为成熟的产品。但在民用领域占有率依然较低,造成这种问题的主要原因就是麒麟操作系统较Windows操作系统起步晚,生态不够完善。为了扩大麒麟软件和LINUX软件的生态规模,计划从国内外开源仓库获取软件,开展适配工作。在软件适配过程中,软件构建是软件开发的重要工作组成部分,同时软件构建往往需要大量的时间来处理,尤其是构建批量软件时,需要花费更多的时间来处理。因此,如何简化软件构建,不只是精简开发工作的需要,更是快速迭代的软件产品能否快速适配操作系统,从而推向市场的重要保证。

技术实现思路

[0003]本专利技术的目的在于提供一种批量软件自动化构建的方法,以解决现有批量软件构建技术中存在的耗费时间长的问题。
[0004]本专利技术的一种批量软件自动化构建的方法,在Linux和Kylin系统上构建软件,具体包括以下步骤:
[0005]S1、利用AI神经网络模型分析软件的各源码说明文件,提取出依赖安装、配置或编译的信息;
[0006]S2、编写正则表达式抓取软件的各源码说明文件中的依赖安装、配置或编译的信息;
[0007]S3、对比分析由利用AI神经网络模型、编写正则表达式这两种方法获取的信息,综合决策;若利用AI神经网络模型、以及编写正则表达式这两种方法均无法获取相关信息,则通过遍历的方法遍历源码目录首层文件夹中配置文件信息,选择合适的默认编译方法;
[0008]S4、根据利用AI神经网络模型、编写正则表达式、遍历的方法获取的信息,进行源码的配置与编译,抓取编译时打印的信息,利用正则方法抓取关键的标志信息,判断编译是否成功。
[0009]其中,步骤S1的具体过程为:
[0010]S11、人工选取数据集并清洗与标注:人工从软件的源码库中选择带有依赖安装、配置或编译的信息的源码说明文件作为数据集,并对数据集中的每条信息均进行标注;
[0011]S12、采用编码、Transformer Encoder、分类、损失优化相结合的优化结构网络,并加载BERT预训练模型,作为所述AI神经网络模型;
[0012]S13、利用数据集内的源码说明文件,根据模型损失函数训练优化所述AI神经网络模型;
[0013]S14、在模型预测阶段,将待分析的源码说明文件的文档按照句子进行切分,采用训练好的AI神经网络模型获取每个句子的得分,根据分数从高到低对这些句子进行排序,并与下步中正则表达式抓取结果融合,选择句子作为摘要。
[0014]其中,步骤S11的具体步骤为:
[0015]步骤S111、选择源码库中选出带有依赖安装、配置或编译的信息的源码包,清洗出不符合的源码包;
[0016]步骤S112、将选择出的符合规定的源码包的说明文件保存,按照输入文本格式在每个句子的句首插入CLS标志,句尾插入SEP标志。
[0017]其中,步骤S13中,所述模型损失函数采用二元交叉熵损失函数。
[0018]其中,步骤S2中,正则表达式通过re.findall函数抓取软件的各源码说明文件中的依赖安装、配置或编译的信息。
[0019]本专利技术的有益效果为:
[0020]本专利技术的一种软件自动化构建方法,在Linux和Kylin系统上利用AI文本分析说明文件,提取依赖安装、配置、编译等信息;利用正则方法获取依赖安装、配置、编译等信息;对比分析两种提取结果,综合决策;如上述方法无法获取信息,通过遍历源码目录首层文件夹中配置文件信息,选择合适的默认编译选项。通过本专利技术,建立了一个通用的方法,极大简化了开发者日常工作中软件构建的工作,能够快速进行大量代码包的构建工作。
[0021]经测试,通过本专利技术的软件自动化构建方法,程序能够自动完成批量软件的构建工作,软件与操作系统适配效率大幅提升。
附图说明
[0022]图1为本专利技术的方法流程图;
[0023]图2为本专利技术的AI神经网络模型的结构图;
[0024]图3为本专利技术的默认的配置编译命令汇总;
[0025]图4为BERT预训练模型的结构图。
具体实施方式
[0026]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0027]如图1

图4所示,本专利技术的一种批量软件自动化构建的方法,在Linux和Kylin系统上构建软件,具体包括以下步骤:
[0028]S1、利用AI神经网络模型分析软件的各源码说明文件,提取出依赖安装、配置或编译的信息。
[0029]S2、编写正则表达式抓取软件的各源码说明文件中的依赖安装、配置或编译的信息。根据以往人工编译规律,说明书中的依赖安装、配置、编译等命令具有相对固定的格式。因此编写正则表达式抓取说明文件中依赖安装、配置、编译等信息,其中,正则表达式可通过re.findall函数抓取软件的各源码说明文件中的依赖安装、配置或编译的信息。
[0030]正则表达式部分代码如下:
[0031]apt_command=re.findall(r'sudo apt([^\<]+)',lines[i])
[0032]cmake_command=re.findall(r'^cmake([^\<]+)',lines[i])
[0033]make_command=re.findall(r'^make([^\<]+)',lines[i])。
[0034]S3、对比分析由利用AI神经网络模型、编写正则表达式这两种方法获取的信息,综合决策(即将AI神经网络模型、编写正则表达式这两种方法获取的信息,先采用包含抓取信息的命令较长的命令语句进行配置编译,若无法配置通过,再采用包含抓取信息的命令较短的命令语句进行配置编译);若利用AI神经网络模型、以及编写正则表达式这两种方法均无法获取相关信息,则通过遍历的方法遍历源码目录首层文件夹中配置文件信息,选择合适的默认编译方法进行配置编译,即选择与抓取信息对应的的默认编译方法进行配置编译。
[0035]由于程序的配置、编译、安装都有固定的敏感词和结构,如:./configure、cmake.

B build、make

j、make install、qmake*.pro、ninja build、mvn build、graddle build、go build等,句子有特定的起始单词,通过对比分析AI神经网络模型提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种批量软件自动化构建的方法,其特征在于,在Linux和Kylin系统上构建软件,具体包括以下步骤:S1、利用AI神经网络模型分析软件的各源码说明文件,提取出依赖安装、配置或编译的信息;S2、编写正则表达式抓取软件的各源码说明文件中的依赖安装、配置或编译的信息;S3、对比分析由利用AI神经网络模型、编写正则表达式这两种方法获取的信息,综合决策;若利用AI神经网络模型、以及编写正则表达式这两种方法均无法获取相关信息,则通过遍历的方法遍历源码目录首层文件夹中配置文件信息,选择合适的默认编译方法;S4、根据利用AI神经网络模型、编写正则表达式、遍历的方法获取的信息,进行源码的配置与编译,抓取编译时打印的信息,利用正则方法抓取关键的标志信息,判断编译是否成功。2.根据权利要求1所述的一种批量软件自动化构建的方法,其特征在于,步骤S1的具体过程为:S11、人工选取数据集并清洗与标注:人工从软件的源码库中选择带有依赖安装、配置或编译的信息的源码说明文件作为数据集,并对数据集中的每条信息均进行标注;S12、采用编码、Transformer Encoder、分类、损失优化...

【专利技术属性】
技术研发人员:韩福海张要辉王媛祁立学
申请(专利权)人:先进操作系统创新中心天津有限公司
类型:发明
国别省市:

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

1