System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种开源声明文件生成方法、校验方法以及计算设备技术_技高网

一种开源声明文件生成方法、校验方法以及计算设备技术

技术编号:41203183 阅读:6 留言:0更新日期:2024-05-07 22:29
本申请实施例提供了一种开源声明文件生成方法、校验方法以及计算设备,该方法包括:响应于针对目标软件项目的文件生成请求,获取目标软件项目的软件包列表,软件包列表包括一个或多个软件包;从目标软件项目的源码镜像文件获取每个软件包的源代码文件;从每个软件包的源代码文件中提取开源声明信息;基于开源声明信息和开源声明模板文件,生成每个软件包的开源声明文件。本申请实施例可提升开源声明文件的编写效率和编写准确率。

【技术实现步骤摘要】

本申请涉及开源软件,尤其涉及一种开源声明文件生成方法、校验方法以及计算设备


技术介绍

1、目前,很大一部分软件项目开发都是基于软件复用实现的,开源软件为软件复用提供了大量的复用资源。开源软件是指公开源代码的软件,使任何人可以查看、修改和分发软件,在复用开源软件时,需在项目文件中附上被复用到的开源软件的开源声明文件。一些大型软件项目(如操作系统)包含的开源软件的个数在几千到几万不等,而大型软件项目的正常运行通常需不断迭代升级,每次升级时涉及的软件包变动少则几百多则几千,相应的开源声明文件也需变化,在过去,开发人员需根据代码提交记录查找到存在变更的软件包,再手动编写软件包的开源声明文件,不仅效率低且人工操作容易出错。


技术实现思路

1、本申请实施例提供了一种开源声明文件生成方法、校验方法以及计算设备,可以提升开源声明文件的编写效率和编写准确率。

2、一方面,本申请实施例提供了一种开源声明文件生成方法,该开源声明文件生成方法包括:

3、响应于针对目标软件项目的文件生成请求,获取目标软件项目的软件包列表,软件包列表包括一个或多个软件包;

4、从目标软件项目的源码镜像文件获取每个软件包的源代码文件;

5、从每个软件包的源代码文件中提取开源声明信息;

6、基于开源声明信息和开源声明模板文件,生成每个软件包的开源声明文件。

7、本申请实施例可以自动化地生成目标软件项目包括的所有软件包的开源声明文件,从而提升开源声明文件的编写效率和编写准确率。

8、在一实现方式中,该开源声明文件生成方法还包括:

9、将每个软件包的开源声明文件添加至目标软件项目的项目文件中。

10、本申请实施例可以自动化地将生成的所有开源声明文件添加到目标软件项目的项目文件中,有利于提升目标软件项目的开发效率。

11、在一实现方式中,开源声明信息包括软件名称、版本号、开源协议、版权信息;基于开源声明信息和开源声明模板文件,生成每个软件包的开源声明文件,包括:

12、获取开源声明模板文件;

13、利用开源声明信息包括的软件名称、版本号、开源协议、版权信息,对开源声明模板文件进行填充处理,得到每个软件包的开源声明文件。

14、本申请实施例可以利用开源声明信息自动填充开源声明模板文件,这样,便能实现开源声明文件的自动生成,有利于提升开源声明文件的编写效率和编写准确率。

15、在一实现方式中,从每个软件包的源代码文件中提取开源声明信息,包括:

16、从每个软件包的源代码文件中提取多个版权信息;

17、对多个版权信息进行去重处理,将去重处理后保留的版权信息确定为开源声明信息包括的版权信息。

18、本申请实施例可以避免提取到的开源声明信息中存在重复的版权信息,能够保证提取到的开源声明信息的准确性。

19、相应地,本申请实施例提供了一种开源声明文件生成装置,该开源声明文件生成装置包括:

20、获取单元,用于响应于针对目标软件项目的文件生成请求,获取目标软件项目的软件包列表,软件包列表包括一个或多个软件包;

21、获取单元,还用于从目标软件项目的源码镜像文件获取每个软件包的源代码文件;

22、处理单元,用于从每个软件包的源代码文件中提取开源声明信息;

23、处理单元,还用于基于开源声明信息和开源声明模板文件,生成每个软件包的开源声明文件。

24、另一方面,本申请实施例提供了一种开源声明文件校验方法,该开源声明文件校验方法包括:

25、响应于针对目标软件项目的文件校验请求,获取目标软件项目的软件包列表,软件包列表包括一个或多个软件包;

26、从源信息数据库中获取每个软件包的第一声明信息;

27、基于第一声明信息对每个软件包的开源声明文件中的第二声明信息进行校验处理,得到校验结果;其中,每个软件包的开源声明文件是基于开源声明模板文件和从每个软件包的源代码文件中提取的开源声明信息生成的。

28、本申请实施例可以自动化地对目标软件项目包括的所有开源声明文件进行校验,从而提升开源声明文件的校验效率和校验准确率。

29、在一实现方式中,在基于第一声明信息对每个软件包的开源声明文件中的第二声明信息进行校验处理,得到校验结果之前,该开源声明文件校验方法还包括:

30、基于每个软件包的名称,从目标软件项目的项目文件中查询每个软件包的开源声明文件;

31、若查询到每个软件包的开源声明文件,则从每个软件包的开源声明文件中获取第二声明信息。

32、本申请实施例可以自动校验软件包的开源声明文件是否存在,有利于提升开源声明文件的校验效率。

33、在一实现方式中,基于第一声明信息对第二声明信息进行校验处理,得到校验结果,包括:

34、确定第一声明信息中的第一校验信息与第二声明信息中的第二校验信息是否一致,并得到校验结果;其中,第一校验信息和第二校验信息包括软件名称、版本号和开源协议。

35、本申请实施例可以实现开源声明文件中开源声明信息的自动校验,有利于提升开源声明文件的校验效率和校验准确率。

36、在一实现方式中,该开源声明文件校验方法还包括:

37、若第一声明信息中的第一校验信息和第二声明信息中的第二校验信息中存在至少一个校验信息不一致,则校验结果记录相应软件包的开源声明文件中的第二声明信息存在错误。

38、本申请实施例可以自动生成校验结果,且校验结果可以提示开源声明信息存在错误,便于开发人员进行后续处理(如人工修改开源声明文件中的开源声明信息)。

39、在一实现方式中,该开源声明文件校验方法还包括:

40、若未查询到每个软件包的开源声明文件,则生成反馈信息;反馈信息用于记录相应软件包的开源声明文件不存在。

41、本申请实施例可以自动生成反馈信息,且反馈信息可以提示开源声明文件不存在,便于开发人员进行后续处理(如人工编写开源声明文件)。

42、相应地,本申请实施例提供了一种开源声明文件校验装置,该开源声明文件校验装置包括:

43、获取单元,用于响应于针对目标软件项目的文件校验请求,获取目标软件项目的软件包列表,软件包列表包括一个或多个软件包;

44、获取单元,还用于从源信息数据库中获取每个软件包的第一声明信息;

45、处理单元,用于基于第一声明信息对每个软件包的开源声明文件中的第二声明信息进行校验处理,得到校验结果;其中,每个软件包的开源声明文件是基于开源声明模板文件和从每个软件包的源代码文件中提取的开源声明信息生成的。

46、相应地,本申请实施例提供一种计算设备,该计算设备包括:存储器和处理器;存储器和处理器耦合;

47、存储器用于存储程序指令;处理器用本文档来自技高网...

【技术保护点】

1.一种开源声明文件生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述开源声明信息包括软件名称、版本号、开源协议、版权信息;

4.根据权利要求1-3任一项所述的方法,其特征在于,所述从每个所述软件包的源代码文件中提取开源声明信息,包括:

5.一种开源声明文件校验方法,其特征在于,所述方法包括:

6.根据权利要求5所述的方法,其特征在于,在基于所述第一声明信息对每个所述软件包的开源声明文件中的第二声明信息进行校验处理,得到校验结果之前,所述方法包括:

7.根据权利要求6所述的方法,其特征在于,所述基于所述第一声明信息对所述第二声明信息进行校验处理,得到校验结果,包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.根据权利要求6所述的方法,其特征在于,所述方法还包括:

10.一种计算设备,其特征在于,所述计算设备包括:存储器和处理器;所述存储器和所述处理器耦合;

...

【技术特征摘要】

1.一种开源声明文件生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述开源声明信息包括软件名称、版本号、开源协议、版权信息;

4.根据权利要求1-3任一项所述的方法,其特征在于,所述从每个所述软件包的源代码文件中提取开源声明信息,包括:

5.一种开源声明文件校验方法,其特征在于,所述方法包括:

6.根据权利要求5所述的方法,其特征在于,在...

【专利技术属性】
技术研发人员:王金超
申请(专利权)人:超聚变数字技术有限公司
类型:发明
国别省市:

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

1