[发明专利]基于API分析的Java第三方库版本统一推荐方法有效
申请号: | 202010077124.5 | 申请日: | 2020-01-23 |
公开(公告)号: | CN111190641B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 陈碧欢;彭鑫;赵文耘 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/41;G06F8/30 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 api 分析 java 第三 版本 统一 推荐 方法 | ||
1. 基于API分析的Java第三方库版本统一推荐方法,其特征在于,具体步骤如下:
(1)第三方库依赖继承分析
Java软件项目的各个模块通过自动化构建工具中的依赖配置文件声明第三方库依赖,而一个模块的依赖配置文件可以继承另一个模块的依赖配置文件;通过分析Java软件项目各个模块的依赖配置文件的依赖继承关系,确定软件项目各个模块所依赖的Java第三方库版本;
(2)第三方库版本不一致检测
软件项目的不同模块使用同一第三方库的不同版本;通过分析各个模块的第三方库版本检测软件项目中的第三方库版本不一致问题,即遍历所有模块所依赖的第三方库版本,识别依赖同一第三方库的所有模块以及它们所依赖的第三方库版本,并分析这些第三方库版本是否是同一个版本,如果不是,那么检测到了一个第三方库版本不一致问题以及所影响的模块;
(3)第三方库版本统一代价分析
第三方库不同版本之间往往包含不兼容的第三方库API,影响到第三方库的统一代价;通过调用图的差异对比分析确定各个模块所调用的第三方库API在候选第三方库一致版本中被删除和修改的API个数和调用次数,作为统一维护代价的度量;通过静态分析工具Soot获得版本不一致问题所影响的模块所调用的第三方库API在目前所依赖的第三方库版本以及候选第三方库一致版本中的调用图;通过调用图的差异对比分析确定各个模块所调用的第三方库API在候选第三方库一致版本中被删除和修改的API个数和调用次数。
2.根据权利要求1所述的基于API分析的Java第三方库版本统一推荐方法,其特征在于,步骤(1)中所述的第三方库依赖继承分析,具体包括以下子步骤:
1)递归遍历软件项目的代码库目录,获得软件项目各个模块的依赖配置文件;
2)解析每一个依赖配置文件的继承声明部分,获得各个依赖配置文件之间的继承关系,并建立依赖配置文件继承关系图;
3)从软件项目的根依赖配置文件进行依赖配置文件继承关系图的广度优先遍历,确定各个模块所依赖的第三方库版本。
3.根据权利要求1所述的基于API分析的Java第三方库版本统一推荐方法,其特征在于,步骤(3)中所述的第三方库版本统一代价分析,具体包括以下子步骤:
1)针对每一个第三方库版本不一致问题,在第三方库版本知识库中找到软件项目目前所依赖的第三方库版本二进制包、以及所有第三方库新版本的二进制包,作为第三方库版本统一的候选第三方库一致版本;
2)针对每一个候选第三方库一致版本,通过静态分析软件项目目前所依赖的第三方库版本二进制包、以及该候选第三方库一致版本的二进制包,分别建立软件项目所调用第三方库API的调用图,即该版本不一致问题所影响的模块所调用的第三方库API在目前所依赖的第三方库版本以及候选第三方库一致版本中的调用图;
3)通过调用图的差异对比分析确定各个模块所调用的第三方库API在候选第三方库一致版本中被删除和修改的API个数和调用次数,作为统一维护代价的度量,即如果各个模块所调用的第三方库API在候选第三方库一致版本中不存在,那么该第三方库API被删除了;如果各个模块所调用的第三方库API的调用图不相同,或者调用图相同但是调用图上的第三方库API方法体不相同,那么该第三方库API被修改了。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010077124.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于锂电池的安全阀结构
- 下一篇:路由管理方法和路由管理装置