[发明专利]一种评估Maven环境中依赖冲突危险级别的方法有效

专利信息
申请号: 201810891476.7 申请日: 2018-08-07
公开(公告)号: CN108984416B 公开(公告)日: 2022-04-08
发明(设计)人: 刘振伟;王蕊;杨博;王莹;于海;朱志良 申请(专利权)人: 东北大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 沈阳东大知识产权代理有限公司 21109 代理人: 刘晓岚
地址: 110819 辽宁*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 评估 maven 环境 依赖 冲突 危险 级别 方法
【权利要求书】:

1.一种评估Maven环境中依赖冲突危险级别的方法,其特征在于,包括流程如下,其中步骤3与步骤4不分先后顺序:

步骤1:获取到当前项目中使用的所有第三方依赖,包括直接依赖和间接依赖;

步骤2:对当前项目所有直接依赖和间接依赖进行遍历,识别当前项目中出现的所有依赖冲突;

步骤3:针对当前项目中的每个依赖冲突进行NoClass危险级别的评估;

步骤4:针对项目中的每个依赖冲突进行NoMethod危险级别的评估;

步骤5:对评估结果进行封装,向开发者展现评估结果;

所述进行NoClass危险级别的评估,流程包括步骤3.1~步骤3.6:

步骤3.1:识别出依赖冲突中用于编译当前项目的一个依赖UsedJar,其余没有用于编译当前项目的多个依赖NotUsedJar构成集合NotUsedJarSet,UsedJar中的类构成集合UsedJarClassSet,NotUsedJar内部的类构成集合NotUsedJarClassSet,如果有某个类存在于NotUsedJarClassSet却不存在于UsedJarClassSet,则将该冲突NoClass的危险级别设置为1;

步骤3.2:解析当前项目中所有被使用的jar包,得到当前项目和其第三方依赖中的类集合UsedClassSet;

步骤3.3:遍历当前NoClass危险级别为1的依赖冲突,如果有某个类Class存在于NotUsedJarClassSet却不存在于UsedClassSet,则将该类添加到该依赖冲突的ThrownClassSet中,并将该冲突NoClass的危险级别设置为2;

步骤3.4:根据类之间的ClassRef关系,建立类关系的有向图ClassGraph,有向图中的节点为类,边的起点和终点为引用类和被引用的类,边的权值全部为1;

步骤3.5:解析当前项目,获取当前项目的宿主类集合HostClassSet;

步骤3.6:遍历当前NoClass危险级别为2的依赖冲突:基于ClassGraph,每次以依赖冲突的ThrownClassSet中的一个类为起点,使用Dijkstra算法计算ThrownClass到图中其他节点的最短路径距离,如果依赖冲突的ThrownClassSet中的某个类与HostClassSet中的某个类的最短距离小于无穷大,则将该冲突NoClass的危险级别设置为3;

所述进行NoMethod危险级别的评估,流程包括步骤4.1~步骤4.3:

步骤4.1:遍历每个依赖冲突,识别出冲突中用于编译当前项目的一个依赖UsedJar,其余没有用于编译当前项目的多个依赖NotUsedJar构成集合NotUsedJarSet,分析UsedJar得到jar包中的类UsedJarClassSet,以及每个类包含的方法,再分析每个NotUsedJar得到jar包中的类集合NotUsedJarClassSet,以及每个类包含的方法,如果存在某个方法Method的类名既存在于UsedJarClassSet又存在于NotUsedJarClassSet,但是只有NotUsedJar中的类对该方法有实现,则将该方法加入到对应NotUsedJar的ThrownMethodSet中,并将对应的依赖冲突NoMethod的危险级别设置为1;

步骤4.2:遍历每个NoMethod危险级别为1的依赖冲突,对于依赖冲突中的每个NotUsedJar的ThrownMethodSet中的元素ThrownMethod,从ThrownMethod的方法名MethodName中提取类名ClassName,在UsedJar中名为ClassName的类定义为ClassA,如果ClassA的父类依然不存在对ThrownMethod的实现,则将对应的依赖冲突NoMethod的危险级别设置为2;

步骤4.3:遍历每个NoMethod危险级别为2的依赖冲突,构建方法调用关系的有向图MethodGraph,基于MethodGraph,计算以项目为入口被执行的方法集合ReachedMethodSet,如果ReachedMethodSet中有ThrownMethod则将对应的依赖冲突的危险级别设置为3。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810891476.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top