Eclipse中递归查找类依赖及间接依赖溯源的技术问询
在Eclipse中分析类依赖的实用方法
刚好在日常开发中用Eclipse处理过不少类依赖分析的需求,给你分享两种问题的具体解决办法:
1. 递归查找类的依赖关系
Eclipse自带了几个好用的工具,不用额外装插件就能搞定:
方法一:调用层次结构(Call Hierarchy)
这是最常用的方式,能清晰看到类的调用与被调用链:
- 打开目标类,右键点击类名(或者在编辑器里选中类名),选择「Open Call Hierarchy」(快捷键
Ctrl+Alt+H) - 默认视图显示的是调用当前类的上层类(Caller Hierarchy),如果要找当前类依赖的下层类,切换到视图右上角的「Callee Hierarchy」标签
- 展开各个节点就能看到递归的完整依赖链,包括直接和间接调用的所有类、方法
方法二:依赖分析器(Dependency Analyzer)
这个工具更偏向于静态依赖的全面分析:
- 点击顶部菜单「Window」→「Show View」→「Other...」,搜索「Dependency Analyzer」打开视图
- 把目标类直接拖到视图中,或者右键目标类→「Analyze Dependencies」
- 在视图的「Dependencies」标签下,勾选「Recursive」选项,就能看到当前类所有递归依赖的类、接口等,还能通过顶部的过滤选项缩小范围
2. 检查是否间接依赖javax.servlet.http.HttpSession并定位引入位置
要精准定位间接依赖的路径,结合工具的搜索和路径追踪功能就能实现:
方法一:结合Call Hierarchy与搜索
- 先按照上面的方法打开目标类的「Callee Hierarchy」
- 在Call Hierarchy视图的右上角搜索框输入
HttpSession,视图会自动过滤出包含该类的依赖节点 - 展开匹配的节点,就能一步步回溯:从目标类→中间依赖类→...→
HttpSession,点击节点就能直接跳转到对应的代码位置,查看具体是在哪里引入的
方法二:用Dependency Analyzer直接查看依赖路径
- 打开Dependency Analyzer并导入目标类,在「Dependencies」标签的搜索框输入
javax.servlet.http.HttpSession - 找到对应的依赖项后,右键点击它→「Open Dependency Path」,会弹出一个窗口显示完整的依赖链路径
- 路径里的每一个节点都是中间依赖类,点击就能直接跳转到代码,清晰看到引入的层级
额外提示
如果你的项目是Maven管理的,也可以用「Maven Dependencies」视图里的「Dependency Hierarchy」查看jar包之间的依赖,但这是jar级别的,类级别的递归分析还是用上面的工具更精准。
内容的提问来源于stack exchange,提问作者Tuomas Toivonen
相关产品推荐
相关产品推荐

