首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >IDEA查看Jar包是由哪个依赖引入的、查找maven依赖关系,找到某个maven依赖所在的pom

IDEA查看Jar包是由哪个依赖引入的、查找maven依赖关系,找到某个maven依赖所在的pom

原创
作者头像
庆哥哥
发布2026-06-03 20:57:38
发布2026-06-03 20:57:38
610
举报
文章被收录于专栏:工具工具

1 背景

今天想写一个 HttpUtils 工具类,为了偷懒,就把其他项目的 HttpUtils 给抄过来了,但是抄过来之后就发现,代码大片飘红,缺少依赖。所以我就好奇,HttpUtils 中的类都是来源于哪个依赖。而且我在旧项目中的 pom.xml 中搜了,找不到任何 http 相关的依赖

image-20260603164511165
image-20260603164511165

比如上图我选中的这些类,都是在 org.apache.http.client 包下,点进 RequestConfig

image-20260603164802894
image-20260603164802894

可以轻易知道它是来源于 httpclient-4.5.14.jar ,这个 jar包对应的依赖明显是

代码语言:yaml
复制
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>

可问题是,我旧项目中明明没有引入这个依赖,为什么能使用 org.apache.http.client.config.RequestConfig 类呢?

我知道,肯定是 pom.xml 文件中引入了某个依赖,然后这个依赖又嵌套引入了 httpclient 这个依赖,那这个源头依赖是哪个?怎么才能快速找到它呢?

2 idea查找maven依赖关系

2.1 使用Maven Helper 插件

下图是我的 pom.xml 文件

image-20260603165629362
image-20260603165629362

Dependency Analyzer

image-20260603165720099
image-20260603165720099

点进去之后如下图所示:

image-20260603165920646
image-20260603165920646
  • All Dependencies as Tree :把所有依赖排列成树结构。上图展示的就是 pom.xml 文件中引入的所有依赖,注意:pom.xml 中引入了 10 个依赖,那么上图就会展示 10 个依赖,至于依赖中嵌套的依赖,需要展开树才能展示
  • All Dependencies as Tree :把所有依赖以列表形式展示,也就是说,pom.xml 中引入的依赖和嵌套的依赖,都会集中展示
image-20260603170426895
image-20260603170426895

上图中可以看到,spring-boot-starter-data-elasticsearch 这个依赖中又嵌套引入了 3 个依赖

image-20260603170636303
image-20260603170636303

回到问题本身,我就想知道我的 HttpUtils 工具类中的 org.apache.http.client 中的类,是来源于我 pom.xml 文件的哪个依赖

image-20260603170813182
image-20260603170813182

就拿 RequestConfig 类来说,我已经知道它是来源于 httpclient-4.5.14.jar 这个 jar 包,那这个 jar 包又是从 pom.xml 中的哪个依赖引进来的?

image-20260603171215044
image-20260603171215044

Dependency Analyzer 中直接搜索 httpclient ,如上图所示

  • 右边显示它是来源于 elasticsearch-rest-client 这个依赖,
  • 但是 elasticsearch-rest-client 又是来源于 spring-data-elasticsearch 这个依赖,
  • spring-data-elasticsearch 又是来源于 spring-boot-starter-data-elasticsearch 这个依赖,而它就是我们在 pom.xml 中引入的依赖。

所以: org.apache.http.client 中的类是来源于 pom.xml 文件中的 spring-boot-starter-data-elasticsearch 这个依赖

2.2 maven 直接搜

idea 右侧 → maven → 搜索框

image-20260603172104920
image-20260603172104920

点击之后如下图所示:

image-20260603172313608
image-20260603172313608
  • kxy-common :工程名字,可以选,毕竟每个工程下依赖都会不同
  • Resolved Dependencies:表示已解析到的依赖,也就是 kxy-common 这个工程下解析得到的所有依赖,包括嵌套的依赖
  • 选中第一个依赖,右边展示的是它的树结果,最顶层是 kxy-common ,表示它是 kxy-common 这个工程下的,是由 spring-boot-starter-test 这个依赖嵌套引入的
image-20260603173254166
image-20260603173254166

回到正题,搜一下 httpclient ,实际上搜 httpcli 就能搜到,右边可以看到,它是由 spring-boot-starter-data-elasticsearch 嵌套引入的。而且还不是直接嵌套,而是多层嵌套

image-20260603173556173
image-20260603173556173

maven 中的 Dependencies 中可以看到,确实是打开多层嵌套,才能找到 httpclient 这个依赖

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 背景
  • 2 idea查找maven依赖关系
    • 2.1 使用Maven Helper 插件
    • 2.2 maven 直接搜
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档