千家信息网

Maven项目中如何剔除无用jar引用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章为大家展示了Maven项目中如何剔除无用jar引用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、为什么要做这件事? 项目持续研发,不停地在上面新增
千家信息网最后更新 2026年11月02日Maven项目中如何剔除无用jar引用

本篇文章为大家展示了Maven项目中如何剔除无用jar引用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、为什么要做这件事? 项目持续研发,不停地在上面新增功能,新增特性,引入新的框架和组件,jar包依赖多并且复杂,再加上需求各种变更,有不少已经存在的功能下线,但jar包依赖没人管,还是放在项目的pom.xml文件里。项目持续的时间一长,经常会出现项目打包要求内存多,时间慢的问题,如何分析项目中哪些依赖是有用的,哪些可以剔除的,一方面减轻打包内存占用多,时间慢的问题,另一方面照顾研发童鞋的强迫症问题(容不得半点无用jar包在我的项目里),这事就可以提上日程了。

二、怎么做? 如果是Maven项目,执行起来还是比较简单,Maven自己提供了一个检测工具,输入命令即可。 在IDEA中,切换到Terminal窗口,或者用命令行打开相应工程目录,直接输入

mvn dependency:analyze

查看控制台输出的日志,重点关注这两部分:

[WARNING] Used undeclared dependencies found:[WARNING]    com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile[WARNING]    com.fasterxml.jackson.core:jackson-databind:jar:2.9.9:compile[WARNING]    io.jsonwebtoken:jjwt:jar:0.9.0:compile[WARNING]    org.apache.rocketmq:rocketmq-common:jar:4.5.2:compile[WARNING]    org.springframework:spring-beans:jar:5.1.8.RELEASE:compile[WARNING]    com.google.code.gson:gson:jar:2.8.0:compile[WARNING]    org.springframework.boot:spring-boot:jar:2.1.6.RELEASE:compile[WARNING]    com.fasterxml.jackson.core:jackson-core:jar:2.9.9:compile[WARNING]    org.springframework:spring-core:jar:5.1.8.RELEASE:compile[WARNING]    org.apache.rocketmq:rocketmq-remoting:jar:4.5.2:compile[WARNING] Unused declared dependencies found:[WARNING]    org.projectlombok:lombok:jar:1.16.20:provided[WARNING]    org.springframework.boot:spring-boot-starter-test:jar:2.1.6.RELEASE:test
Used undeclared dependencies found

间接依赖,就是说你在当前项目工程的pom.xml里没有直接声明,这个依赖是由你声明过的dependency里的pom.xml依赖传递得来的。 例如org.apache.rocketmq:rocketmq-common:jar:4.5.2:compile是你引用了这个:

        org.apache.rocketmq        rocketmq-client        4.5.2

Maven本来就是这样用的,也不建议说你把这部分引用拷贝到你的pom.xml里,一般来说这部分的WARNING可以忽略。

Unused declared dependencies found

无用依赖,这个指我们在pom.xml声明了这个jar包的依赖,但在项目工程里没有使用到,这个不是我们此次关注的重点,确定不需要,就可以剔除掉这个依赖,Reimport后这个jar包就从我们项目中剔掉了。

三、什么时候做? 1)新项目建立时,引用jar包时要慎重,不要一股脑儿直接拷贝老项目的依赖,避免后期又花时间来剔除。 2)功能代码重构时,可以适当做一次剔除,因为后面还有自测,提交测试环节,如果有误删,测试的时候能发现。

四、有什么风险要注意的? 1)这个检测的结果仅供参考,有时也不准确,如上文提及的org.projectlombok:lombok:jar:1.16.20:provided,实际上在项目中有使用到它的注解@Data,这个属于误判。要注意剔除依赖后多测试,工具毕竟有毕竟的缺陷性。 2)如果童鞋们接手遗留的老项目时,这种问题肯定很多,但刚接手时不建议做这个操作,因为本身对项目不熟悉,上来就删东西导致问题会浪费很多时间和精力搞定依赖的问题,这块东西建议暂时先不要动。

五、补充一个小插件 查看pom.xml的依赖关系时,可以在IDEA上安装maven help插件,可以直观地看到各jar依赖关系

上述内容就是Maven项目中如何剔除无用jar引用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

项目 问题 时间 功能 就是 工程 建议 测试 东西 内存 内容 命令 工具 技能 拷贝 插件 时候 知识 童鞋 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 科技企业和互联网企业 北京互联网科技公司 齐家互联网科技 科技互联网公司logo 山东吉时兔互联网科技有限公司 华中科技有哪些互联网大佬 中盈科技互联网信息有限公司 互联网科技有哪些公司 厦门千工互联网科技有限公司 注册互联网科技公司经营范围大全 健康食品互联网创新科技园项目 佛山市翊博互联网络科技有限公司 卓翼科技产业互联网合作 国大互联网教育科技有限公司薪资 美国互联网科技实力 互联网风格科技公司名称 广州三三互联网科技有限公司 好易买互联网科技 上海旺乐尼互联网科技有限公司 互联网科技金融公司 互联网科技股票 郑州华宇互联网科技 科技互联网创业计划书 甘肃拓世互联网科技有限公司 广西拼得多互联网科技有限公司 青海省互联网新科技 岳阳华臻互联网科技有限公司 工业互联网展湾科技股份有限公司 无锡工业互联网科技有限公司
0