Maven开源软件库的生成方法、装置及存储介质制造方法及图纸

技术编号:24573924 阅读:101 留言:0更新日期:2020-06-21 00:06
本发明专利技术提供了一种Maven开源软件库的生成方法、装置、电子设备及存储介质,其中,方法包括:构建多个参数并生成参数表,且参数被定义为任一Maven开源软件的组织名称或组件名称的部分关键词;将参数表中的多个参数依次代入至Maven提供的第一接口,且第一接口用于匹配并返回分别与多个参数相关的Maven开源软件的组织名称及组件名称;将第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口,且第二接口用于查找并返回Maven开源软件的版本名称;根据Maven提供的每一个接口返回的所有Maven开源软件的相关信息,生成Maven开源软件库。本发明专利技术几乎能够找到所有Maven开源软件的相关信息,保证了生成的Maven开源软件库的完整性和准确性。

The generating method, device and storage medium of Maven open source software library

【技术实现步骤摘要】
Maven开源软件库的生成方法、装置及存储介质
本专利技术涉及软件库生成
,尤其是指一种Maven开源软件库的生成方法、装置、电子设备及存储介质。
技术介绍
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,而Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。近些年来,Java语言凭借其功能强大、简单易用、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,被广泛应用于编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,同时作为Java开发的标准组件格式的Maven开源软件(以下简称Maven软件)也得到了极其广泛的应用。Maven软件主要由三个字段组成,分别是组织名称(groupid)、组件名称(artifactid)及版本名称(version),以下简称g、a及v。这三个字段相当于一个Maven软件的坐标,即每一个Maven软件的g、a及v均是唯一的。另外,每一个Maven软件都会对应一个根据文件的内容计算出来的哈希码,此哈希码相当于人类的指纹,即在绝大多数情况下,任意两个Maven软件的哈希码是不同的,即使是相同的,也可以根据每个Maven软件的g、a及v加以区分。在分析应用软件的时候,可以直接根据扫描出来的Maven开源软件的哈希码即可匹配该开源软件的组件构成信息。然而,如果没有Maven开源软件库,那便需要实时对应用组成里的组件进行扫描分析,然后进行计算哈希码加以识别等多个操作,耗时耗力,故Maven开源软件库对于软件的组成分析来说,是具有很大帮助的。目前,现有的Maven开源软件库的生成方法,大多是单一步骤的数据获取,无法保证数据的完整性和准确性,即每一个Maven开源软件的g、a及v不完整,缺失了很大部分的g、a及v数据,从而给软件的组成分析带来了极大地不确定性。因此,有必要对现有的Maven开源软件库的生成方法进行改进。
技术实现思路
本专利技术所要解决的技术问题是:提供一种Maven开源软件库的生成方法、装置、电子设备及存储介质,旨在解决现有的Maven开源软件库的生成方法,无法保证数据的完整性和准确性的问题。为了解决上述技术问题,本专利技术采用的技术方案为:本专利技术实施例第一方面提供了一种Maven开源软件库的生成方法,包括如下步骤:构建多个参数并生成参数表,所述参数被定义为任一Maven开源软件的组织名称或组件名称的部分关键词;将所述参数表中的多个参数依次代入至Maven提供的第一接口,所述第一接口用于对多个参数与Maven开源软件的组织名称或组件名称的关键词进行匹配,并返回分别与多个所述参数相关的Maven开源软件的组织名称及组件名称;将所述第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口,所述第二接口用于根据分别与多个参数相关的Maven开源软件的组织名称或组件名称查找并返回Maven开源软件的版本名称;根据Maven提供的每一个所述接口返回的所有Maven开源软件的相关信息,生成Maven开源软件库。进一步地,所述将所述第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口之后,还包括:将所述第一接口及第二接口返回的所有Maven开源软件的组织名称、组件名称及版本名称依次代入至Maven提供的第三接口,所述第三接口用于对第一接口及第二接口返回的所有Maven开源软件的组织名称、组件名称及版本名称进行对应拼接,生成并返回所有Maven开源软件的哈希码。进一步地,所述根据Maven提供的每一个所述接口返回的所有Maven开源软件的相关信息,生成Maven开源软件库之后,还包括:将经所述第三接口对应拼接后的所有Maven开源软件的组织名称、组件名称及版本名称依次代入至Maven提供的第四接口,所述第四接口用于下载所有与Maven开源软件的组织名称、组件名称及版本名称对应的Maven开源软件的pom文件。进一步地,所述将经所述第三接口对应拼接后的所有Maven开源软件的组织名称、组件名称及版本名称依次代入至Maven提供的第四接口之后,还包括:对所述pom文件内的dependencies元素下的每一个dependency进行解析,获得每一个所述dependency的相关信息,且每一个所述dependency均为Maven开源软件;判断每一个所述dependency的相关信息是否存在于Maven开源软件库,若否,则将每一个所述dependency的相关信息存储至Maven开源软件库。进一步地,多个所述参数均为26个字母的随机组合,且任一所述参数的长度不大于5个字母长度。进一步地,该Maven开源软件库的生成方法还包括:获取所述Maven开源软件库中所有的组织名称并依次代入至Maven提供的第五接口,所述第五接口用于根据组织名称,查询并返回所述组织名称下的所有组件名称,并将返回的所述组件名称存储至Maven开源软件库;获取所述Maven开源软件库中所有的组织名称及组件名称并依次代入至Maven提供的第六接口,所述第六接口用于根据所述组织名称及组件名称,查询并返回所述组织名称及组件名称下的所有版本名称,并将返回的所述版本名称存储至Maven开源软件库。进一步地,该Maven开源软件库的生成方法还包括:判断任一接口返回分别与多个参数相关的Maven开源软件的相关信息是否异常,若是,则根据多个所述参数生成异常参数表;分别判断所述异常参数表中的多个参数是否属于第一类异常参数或第二类异常参数,若所述异常参数表中的多个参数属于第一类异常参数,则将所述异常参数表中的多个参数重新依次代入至第一接口并相应删除异常参数表中的参数,若所述异常参数表中的多个参数属于第二类异常参数,则根据所述异常参数表中的多个参数修改相关程序,修改后的所述相关程序,在将所述参数表中的多个参数依次代入至第一接口时,可捕获并跳过所述异常参数表中的多个参数。本专利技术实施例第二方面提供了一种Maven开源软件库的生成装置,其包括:构建模块,用于构建多个参数并生成参数表,所述参数被定义为任一Maven开源软件的组织名称或组件名称的部分关键词;第一获取模块,用于将所述参数表中的多个参数依次代入至Maven提供的第一接口,所述第一接口用于对多个参数与Maven开源软件的组织名称或组件名称的关键词进行匹配,并返回分别与多个所述参数相关的Maven开源软件的组织名称及组件名称;第二获取模块,用于将所述第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口,所述第二接口用于根据分别与多个参数相关的Maven开源软件的组织名称或组件名称查找并返回Maven本文档来自技高网
...

【技术保护点】
1.一种Maven开源软件库的生成方法,其特征在于,包括如下步骤:/n构建多个参数并生成参数表,所述参数被定义为任一Maven开源软件的组织名称或组件名称的部分关键词;/n将所述参数表中的多个参数依次代入至Maven提供的第一接口,所述第一接口用于对多个参数与Maven开源软件的组织名称或组件名称的关键词进行匹配,并返回分别与多个所述参数相关的Maven开源软件的组织名称及组件名称;/n将所述第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口,所述第二接口用于根据分别与多个参数相关的Maven开源软件的组织名称或组件名称查找并返回Maven开源软件的版本名称;/n根据Maven提供的每一个所述接口返回的所有Maven开源软件的相关信息,生成Maven开源软件库。/n

【技术特征摘要】
1.一种Maven开源软件库的生成方法,其特征在于,包括如下步骤:
构建多个参数并生成参数表,所述参数被定义为任一Maven开源软件的组织名称或组件名称的部分关键词;
将所述参数表中的多个参数依次代入至Maven提供的第一接口,所述第一接口用于对多个参数与Maven开源软件的组织名称或组件名称的关键词进行匹配,并返回分别与多个所述参数相关的Maven开源软件的组织名称及组件名称;
将所述第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口,所述第二接口用于根据分别与多个参数相关的Maven开源软件的组织名称或组件名称查找并返回Maven开源软件的版本名称;
根据Maven提供的每一个所述接口返回的所有Maven开源软件的相关信息,生成Maven开源软件库。


2.如权利要求1所述的Maven开源软件库的生成方法,其特征在于,所述将所述第一接口返回的分别与多个参数相关的Maven开源软件的组织名称或组件名称依次代入至Maven提供的第二接口之后,还包括:
将所述第一接口及第二接口返回的所有Maven开源软件的组织名称、组件名称及版本名称依次代入至Maven提供的第三接口,所述第三接口用于对第一接口及第二接口返回的所有Maven开源软件的组织名称、组件名称及版本名称进行对应拼接,生成并返回所有Maven开源软件的哈希码。


3.如权利要求2所述的Maven开源软件库的生成方法,其特征在于,所述根据Maven提供的每一个所述接口返回的所有Maven开源软件的相关信息,生成Maven开源软件库之后,还包括:
将经所述第三接口对应拼接后的所有Maven开源软件的组织名称、组件名称及版本名称依次代入至Maven提供的第四接口,所述第四接口用于下载所有与Maven开源软件的组织名称、组件名称及版本名称对应的Maven开源软件的pom文件。


4.如权利要求3所述的Maven开源软件库的生成方法,其特征在于,所述将经所述第三接口对应拼接后的所有Maven开源软件的组织名称、组件名称及版本名称依次代入至Maven提供的第四接口之后,还包括:
对所述pom文件内的dependencies元素下的每一个dependency进行解析,获得每一个所述dependency的相关信息,且每一个所述dependency均为Maven开源软件;
判断每一个所述dependency的相关信息是否存在于Maven开源软件库,若否,则将每一个所述dependency的相关信息存储至Maven开源软件库。


5.如权利要求1-4任一项所述的Maven开源软件库的生成方法,其特征在于:多个所述参数均为26个字母的随机组合,且任一所述参数的长...

【专利技术属性】
技术研发人员:汪杰万振华王颉董燕李华洪二稳
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:广东;44

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

1