软件依赖关系分析方法、分析装置和可读存储介质与流程

文档序号:24119271发布日期:2021-02-27 15:39阅读:63来源:国知局
软件依赖关系分析方法、分析装置和可读存储介质与流程

[0001]
本发明涉及软件技术领域,具体而言,涉及一种软件依赖关系分析方法,一种软件依赖关系分析装置,一种可读存储介质。


背景技术:

[0002]
大型项目中多则上百个项目,各项目中的软件开发工具包sdk的状态不一,存在不同版本snapshot版本(尚在开发中的版本)、release版本(指发布版本),各版本的依赖顺序也不明确;在进行切release时,更是复杂。
[0003]
针对类似此种场景,目前采用的是通过统一技术栈,统一二方包的方式进行规范约定,实则在发布的服务中使用的版本如何,则状态不一。


技术实现要素:

[0004]
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
[0005]
为此,本发明的一个方面在于提出了一种软件依赖关系分析方法。
[0006]
本发明的另一个方面在于提出了一种软件依赖关系分析装置。
[0007]
本发明的再一个方面在于提出了一种可读存储介质。
[0008]
有鉴于此,根据本发明的一个方面,提出了一种软件依赖关系分析方法,软件包括多个项目,分析方法包括:获取多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包;根据多个依赖关系报告,确定多个软件包的发布依赖关系;根据发布依赖关系生成并显示多个软件包的发布依赖关系报告。
[0009]
本发明提供的软件依赖关系分析方法,其中软件包括多个项目。分别获取每个项目的依赖关系报告及使用的软件包sdk,即一个项目对应生成一个依赖关系报告,从而得到多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包sdk。根据多个依赖关系报告,解析各依赖关系报告中的引用关系,从而确定多个软件包的发布依赖关系,即软件包发布依赖的先后顺序。之后,根据发布依赖关系生成并显示多个软件包的发布依赖关系报告,具体地,可以为视图报告。通过本发明的软件依赖关系分析方法,能够快速洞悉某个特定软件包在各个项目中的分布情况,以及各个项目中软件包的使用情况,并能够快速了解各软件包的发布依赖关系,对于实现大型项目依赖情况的分析、支撑切release版本上取得了高效、便捷、快速的指引,提升了该事项的工作效率。
[0010]
根据本发明的上述软件依赖关系分析方法,还可以具有以下技术特征:
[0011]
在上述技术方案中,依赖关系报告包括多个项目中任一项项目使用的软件包的依赖关系。
[0012]
在该技术方案中,依赖关系报告包括任一项项目使用的软件包的依赖关系,但不限于此。可以理解地,报告中还可包括软件包的基础信息,比如软件包标识、项目标识、版本信息等。依赖关系报告反映了项目中的软件包sdk的使用情况,即该项目使用了哪些软件包,以及每个软件包的引用关系。例如,项目a包括sdk1和sdk2,sdk1引用了sdk3,sdk3引用
sdk4及sdk5,sdk2引用了sdk6。对于单个项目而言,本技术方案提供基于项目和软件包等不同视角的分析方案。基于项目的视角,能够获悉项目使用了哪些软件包,软件包的使用状态、使用版本。基于软件包的角度,能够获悉软件包的依赖关系及依赖顺序。由此,为实现大型项目工程依赖情况的分析提供了基础。
[0013]
在上述任一技术方案中,根据多个依赖关系报告,确定多个软件包的发布依赖关系的步骤,具体包括:根据多个依赖关系报告,确定多个软件包的依赖关系;基于依赖关系,按照依赖先后层级对多个软件包进行依赖排序,得到多个软件包的发布依赖关系。
[0014]
在该技术方案中,对于根据多个依赖关系报告,确定多个软件包的发布依赖关系的方法进行了限定。具体地,通过对所有项目的多个依赖关系报告进行统计分析,实现大量项目的依赖分析,并输出多个软件包的依赖关系。同时支持基于项目和软件包等不同视角的分析方案。基于软件包sdk的视角,能够获悉软件包sdk的依赖关系及依赖顺序,依赖关系包括引用关系及被引用关系。例如,sdk2,引用了sdk6,被sdk7及sdk8所引用,其中,sdk7引用了sdk8,则sdk2的依赖顺序为:sdk7、sdk8、sdk2、sdk6。基于项目的视角,能够快速洞悉特定软件包在各项目中的分布情况,以及各项目中的软件包的使用状态。进一步地,基于多个软件包的依赖关系,可以确定各软件包的依赖先后层级。按照依赖先后层级对多个软件包进行依赖排序,从而得到多个软件包的发布依赖关系。可以理解地,对于任一层级,层级越低越先发布,层级越高越后发布。通过本发明的技术方案,能够快速洞悉特定软件包在各项目的使用情况,并能够以视图方式输出各软件包的发布依赖关系,规范各软件包的发布依赖顺序,从而实现大型项目工程的二、三方包的快速分析。
[0015]
在上述任一技术方案中,任一层级中的多个软件包之间没有依赖关系。
[0016]
在该技术方案中,任一层级包括至少一个软件包,当包括多个软件包时,多个软件包之间没有依赖关系,从而对于同一层级的软件包可以并行发布,对于支撑切release版本上取得了高效、便捷、快速的指引。
[0017]
在上述任一技术方案中,软件依赖关系分析方法还包括:获取多个软件包对应的多个软件包标识及多个版本信息;基于同一软件包标识的多个软件包对应的版本信息不一致的情况下,将同一标识的多个软件包对应的版本修改为指定版本。
[0018]
在该技术方案中,首先,获取所有项目中各软件包对应的软件包标识及对应的版本信息,其中软件包标识即软件包的唯一标识。由于同一个软件包可能分布在不同项目中,并存在各项目中所用版本不一致的情况,导致在发布的服务中使用的版本不一,不利于后续维护,因此,需要对同一标识的多个软件包的版本进行统一。如果同一软件包标识下的多个软件包,其版本信息一致,则无需进一步处理,反之,如果其版本信息不一致,则需要将同一软件包标识下的多个软件包对应的版本修改为指定版本。通过本发明的技术方案,将所有项目中使用的软件包版本透明化,实现所有项目的二、三方包的非release分析,并以视图的方式输出各软件包的发布依赖顺序,使切换release变得简单。
[0019]
在上述任一技术方案中,软件依赖关系分析方法还包括:按照预设过滤条件对发布依赖关系报告过滤,生成对应的目标发布依赖关系报告,其中预设过滤条件包括以下任一项或其组合:软件包标识、软件包发布状态、层级名称、项目标识。
[0020]
在该技术方案中,支持按照预设过滤条件对发布依赖关系报告进行过滤,从而生成符合特定条件的目标发布依赖关系报告。其中可根据软件包标识、软件包发布状态、层级
名称、项目标识中的任一项或其组合来设置预设过滤条件。从而支持按照不同的视角分析该软件中的非release的信息以及sdk在其他项目使用的情况。
[0021]
在上述任一技术方案中,获取多个项目对应的多个依赖关系报告的步骤,具体包括:对每个项目对应的编译文件进行扫描,确定每个项目对应的依赖关系报告。
[0022]
在该技术方案中,通过对每个项目对应的编译文件进行扫描,可以获取到每个项目的依赖关系报告,包括依赖关系、软件包标识、项目标识、版本信息等信息。
[0023]
在上述任一技术方案中,依赖关系报告的格式为txt格式;发布依赖关系报告的格式为excel格式。
[0024]
在该技术方案中,依赖关系报告的格式为txt格式,但不限于此,当依赖关系报告的格式改变时,相应的在对多个依赖关系报告进行综合分析时,读取每个依赖关系报告的接口也要相应发生改变。发布依赖关系报告的格式为excel格式,但不限于此。
[0025]
根据本发明的另一个方面,提出了一种软件依赖关系分析装置,包括:存储器,存储器存储有程序;处理器,处理器执行程序时实现如上述任一技术方案的软件依赖关系分析方法。
[0026]
本发明提供的软件依赖关系分析装置,处理器执行程序时实现如上述任一技术方案的软件依赖关系分析方法的步骤,因此该软件依赖关系分析装置包括上述任一技术方案的软件依赖关系分析方法的全部有益效果。
[0027]
根据本发明的再一个方面,提出了一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述任一技术方案的软件依赖关系分析方法。
[0028]
本发明提供的可读存储介质,处理器执行程序时实现如上述任一技术方案的软件依赖关系分析方法的步骤,因此该可读存储介质包括上述任一技术方案的软件依赖关系分析方法的全部有益效果。
[0029]
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
[0030]
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0031]
图1示出了本发明的第一个实施例的软件依赖关系分析方法的流程示意图;
[0032]
图2示出了本发明的第二个实施例的软件依赖关系分析方法的流程示意图;
[0033]
图3示出了本发明的第三个实施例的软件依赖关系分析方法的流程示意图;
[0034]
图4示出了本发明的第四个实施例的软件依赖关系分析方法的流程示意图;
[0035]
图5示出了本发明的第五个实施例的软件依赖关系分析方法的逻辑示意图;
[0036]
图6示出了本发明的第五个实施例的发布依赖关系报告的示意图;
[0037]
图7示出了本发明的一个实施例的软件依赖关系分析装置的示意框图。
具体实施方式
[0038]
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本发明的实施
例及实施例中的特征可以相互组合。
[0039]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
[0040]
根据本发明的一个方面的实施例,提出了一种软件依赖关系分析方法,通过以下实施例对该软件依赖关系分析方法进行详细说明。
[0041]
实施例一,图1示出了本发明的第一个实施例的软件依赖关系分析方法的流程示意图。其中,软件包括多个项目,该分析方法包括:
[0042]
步骤102,获取多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包;
[0043]
步骤104,根据多个依赖关系报告,确定多个软件包的发布依赖关系;
[0044]
步骤106,根据发布依赖关系生成并显示多个软件包的发布依赖关系报告。
[0045]
本实施例提供的软件依赖关系分析方法,其中软件包括多个项目。分别获取每个项目的依赖关系报告及使用的软件包,即一个项目对应生成一个依赖关系报告,从而得到多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包sdk。根据多个依赖关系报告,解析各依赖关系报告中的引用关系,从而确定多个软件包的发布依赖关系,即软件包发布依赖的先后顺序。之后,根据发布依赖关系生成并显示多个软件包的发布依赖关系报告,具体地,可以为视图报告。通过本实施例的软件依赖关系分析方法,能够快速洞悉某个特定软件包在各个项目中的分布情况,以及各个项目中软件包的使用情况,并能够快速了解各软件包的发布依赖关系,对于实现大型项目依赖情况的分析、支撑切release版本上取得了高效、便捷、快速的指引,提升了该事项的工作效率。
[0046]
实施例二,图2示出了本发明的第二个实施例的软件依赖关系分析方法的流程示意图。其中,软件包括多个项目,该分析方法包括:
[0047]
步骤202,获取多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包;
[0048]
步骤204,根据多个依赖关系报告,确定多个软件包的依赖关系;
[0049]
步骤206,基于依赖关系,按照依赖先后层级对多个软件包进行依赖排序,得到多个软件包的发布依赖关系;
[0050]
步骤208,根据发布依赖关系生成并显示多个软件包的发布依赖关系报告。
[0051]
在该实施例中,通过对所有项目的多个依赖关系报告进行统计分析,实现大量项目的依赖分析,并输出多个软件包的依赖关系。同时支持基于项目和软件包等不同视角的分析方案。基于软件包sdk的视角,能够获悉软件包sdk的依赖关系及依赖顺序,依赖关系包括引用关系及被引用关系。例如,sdk2,依赖于sdk6,被sdk7及sdk8所依赖,其中,sdk7依赖于sdk8,则sdk2的依赖顺序为:sdk7、sdk8、sdk2、sdk6。基于项目的视角,能够快速洞悉特定软件包在各项目中的分布情况,以及各项目中的软件包的使用状态。进一步地,基于依赖关系,可以确定各软件包的依赖先后层级。按照依赖先后层级对多个软件包进行依赖排序,从而得到多个软件包的发布依赖关系。可以理解地,对于任一层级,层级越低越先发布,层级越高越后发布。通过本实施例的软件依赖关系分析方法,能够快速洞悉特定软件包在各项目的使用情况,并能够以视图方式输出各软件包的发布依赖关系,规范各软件包的发布依
赖顺序,从而实现大型项目工程的二、三方包的快速分析。
[0052]
实施例三,图3示出了本发明的第三个实施例的软件依赖关系分析方法的流程示意图。其中,软件包括多个项目,该分析方法包括:
[0053]
步骤302,获取多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包;
[0054]
步骤304,根据多个依赖关系报告,确定多个软件包的依赖关系;
[0055]
步骤306,基于依赖关系,按照依赖先后层级对多个软件包进行依赖排序,得到多个软件包的发布依赖关系;
[0056]
步骤308,根据发布依赖关系生成并显示多个软件包的发布依赖关系报告;
[0057]
步骤310,获取多个软件包对应的多个软件包标识及多个版本信息;
[0058]
步骤312,基于同一软件包标识的多个软件包对应的版本信息不一致的情况下,将同一标识的多个软件包对应的版本修改为指定版本。
[0059]
在该实施例中,首先,获取所有项目中各软件包对应的软件包标识及对应的版本信息,其中软件包标识即软件包的唯一标识。由于同一个软件包可能分布在不同项目中,并存在各项目中所用版本不一致的情况,导致在发布的服务中使用的版本不一,不利于后续维护,因此,需要对同一标识的多个软件包的版本进行统一。如果同一软件包标识下的多个软件包,其版本信息一致,则无需进一步处理,反之,如果其版本信息不一致,则需要将同一软件包标识下的多个软件包对应的版本修改为指定版本。通过本实施例的软件依赖关系分析方法,将所有项目中使用的软件包版本透明化,实现所有项目的二、三方包的非release分析,并以视图的方式输出各软件包的发布依赖顺序,使切换release变得简单。
[0060]
实施例四,图4示出了本发明的第四个实施例的软件依赖关系分析方法的流程示意图。其中,软件包括多个项目,该分析方法包括:
[0061]
步骤402,获取多个项目对应的多个依赖关系报告,以及多个项目对应的多个软件包;
[0062]
步骤404,根据多个依赖关系报告,确定多个软件包的依赖关系;
[0063]
步骤406,基于依赖关系,按照依赖先后层级对多个软件包进行依赖排序,得到多个软件包的发布依赖关系;
[0064]
步骤408,根据发布依赖关系生成并显示多个软件包的发布依赖关系报告;
[0065]
步骤410,获取多个软件包对应的多个软件包标识及多个版本信息;
[0066]
步骤412,基于同一软件包标识的多个软件包对应的版本信息不一致的情况下,将同一标识的多个软件包对应的版本修改为指定版本;
[0067]
步骤414,按照预设过滤条件对发布依赖关系报告过滤,生成对应的目标发布依赖关系报告,其中预设过滤条件包括以下任一项或其组合:软件包标识、软件包发布状态、层级名称、项目标识。
[0068]
在该实施例中,支持按照预设过滤条件对发布依赖关系报告进行过滤,从而生成符合特定条件的目标发布依赖关系报告。其中可根据软件包标识、软件包发布状态、层级名称、项目标识中的任一项或其组合来设置预设过滤条件。从而支持按照不同的视角分析该软件中的非release的信息以及sdk在其他项目使用的情况。
[0069]
在上述任一实施例中,获取多个项目对应的多个依赖关系报告的步骤,具体包括:
对每个项目对应的编译文件进行扫描,确定每个项目对应的依赖关系报告。
[0070]
在该实施例中,通过对每个项目对应的编译文件进行扫描,可以获取到每个项目的依赖关系报告,包括依赖关系、软件包标识、项目标识、版本信息等信息。
[0071]
在上述任一实施例中,依赖关系报告包括多个项目中任一项项目使用的软件包的依赖关系。
[0072]
在该实施例中,依赖关系报告包括任一项项目使用的软件包的依赖关系,但不限于此。可以理解地,报告中还可包括软件包的基础信息,比如软件包标识、项目标识、版本信息等。依赖关系报告反映了项目中的软件包sdk的使用情况,即该项目使用了哪些软件包,以及每个软件包的引用关系。例如,项目a包括sdk1和sdk2,sdk1引用了sdk3,sdk3引用sdk4及sdk5,sdk2引用了sdk6。对于单个项目而言,本实施例提供基于项目和软件包等不同视角的分析方案。基于项目的视角,能够获悉项目使用了哪些软件包,软件包的使用状态、使用版本。基于软件包的角度,能够获悉软件包的依赖关系及依赖顺序。由此,为实现大型项目工程依赖情况的分析提供了基础。
[0073]
在上述任一实施例中,任一层级中的多个软件包之间没有依赖关系。
[0074]
在该实施例中,任一层级包括至少一个软件包,当包括多个软件包时,多个软件包之间没有依赖关系,从而对于同一层级的软件包可以并行发布,对于支撑切release版本上取得了高效、便捷、快速的指引。
[0075]
在上述任一实施例中,依赖关系报告的格式为txt格式;发布依赖关系报告的格式为excel格式。
[0076]
在该实施例中,依赖关系报告的格式为txt格式,但不限于此,当依赖关系报告的格式改变时,相应的在对多个依赖关系报告进行综合分析时,读取每个依赖关系报告的接口也要相应发生改变。发布依赖关系报告的格式为excel格式,但不限于此。
[0077]
实施例五,提出了一种软件依赖关系分析方法,图5示出了本发明的第五个实施例的软件依赖关系分析方法的逻辑示意图。如图5所示,该分析方法的两个核心利器:基于maven的插件,输出各项目中的sdk使用情况的report报告,project-sdk-analyze插件则通过收集的所有项目的report报告进行统计分析实现大量项目的分析,并能够输出以不同的视角进行分析。具体地:
[0078]
1、基于maven的插件,能够扫描出项目中的依赖的关系报告,也支持对符合特定条件的进行检索。
[0079]
2、project-sdk-analyze:用于实现对产生的所有报告report解析计算各报告中的引用关系及统计并输出对应的视图报告。
[0080]
图6示出了本发明的第五个实施例的发布依赖关系报告的示意图。其中,该发布依赖关系报告分批次(即分层级)的展示了多个软件包的发布依赖关系。可以理解地,第一层级(即第一批)至第十层级依次发布,第二层级依赖于第一层级,第三层级依赖于第一层级和/或第二层级,以此类推,第十层级可依赖于前面九层级中的任一层级或其组合。
[0081]
另外,该发布依赖关系报告还展示了主项目标识、子项目标识、版本信息及状态(即软件包发布状态),以及使用项目(即使用的软件包)。根据主项目标识、子项目标识、版本信息及软件包发布状态,以及软件包标识可设置预设过滤条件,基于预设过滤条件对该发布依赖关系报告进行过滤,从而生成对应的目标发布依赖关系报告。
[0082]
本实施例相较于传统解决方案在大型项目工程二、三方包分析的场景上优势如下:
[0083]
1、能够快速洞悉特定sdk在各个项目中的分布情况;
[0084]
2、能够快速知悉某个项目中的sdk的使用状态;
[0085]
3、能够快速了解各sdk的发布依赖关系及顺序。
[0086]
根据本发明的另一个方面的实施例,提出了一种软件依赖关系分析装置,图7示出了本发明的一个实施例的软件依赖关系分析装置700的示意框图。其中,该软件依赖关系分析装置700包括:存储器702,存储器702存储有程序;处理器704,处理器704执行程序时实现如上述任一实施例的软件依赖关系分析方法。
[0087]
本实施例提供的软件依赖关系分析装置700,处理器704执行程序时实现如上述任一实施例的软件依赖关系分析方法的步骤,因此该软件依赖关系分析装置700包括上述任一实施例的软件依赖关系分析方法的全部有益效果。
[0088]
根据本发明的再一个方面的实施例,提出了一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述任一实施例的软件依赖关系分析方法。
[0089]
本实施例提供的可读存储介质,处理器执行程序时实现如上述任一实施例的软件依赖关系分析方法的步骤,因此该可读存储介质包括上述任一实施例的软件依赖关系分析方法的全部有益效果。
[0090]
在本说明书的描述中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性,除非另有明确的规定和限定;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0091]
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0092]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1