如何识别并移除Spring Boot项目中未使用的Maven依赖?
清理Spring项目POM.xml冗余依赖的实用方案
一、用Maven插件自动扫冗余
- maven-dependency-plugin:直接在项目根目录执行
mvn dependency:analyze命令,插件会自动扫描代码与依赖关系,输出结果里的Unused declared dependencies就是未被代码直接调用的依赖。注意:运行时才生效的依赖(比如配置类、SPI实现类)可能被误判,删除前一定要结合项目实际功能验证。 - 如果你是Spring Boot项目,
spring-boot-maven-plugin的build-info目标能辅助依赖分析,但核心还是要搭配上面的dependency插件使用。
二、手动兜底排查法
- 先保留
spring-boot-starter-web这类核心基础依赖,然后逐个移除疑似无用的依赖,每删一个就执行mvn clean compile并启动项目验证功能。虽然繁琐,但能彻底避免插件误删关键依赖的情况。 - 执行
mvn dependency:tree查看完整依赖树,有些你手动添加的依赖其实已经被其他依赖间接引入,这类可以直接删除,靠传递依赖自动引入即可。
三、避免后续冗余的小习惯
- 以后用Spring Initializr时,别图省事全选依赖,只勾选当前项目明确需要的模块。
- 新增依赖前先跑
mvn dependency:tree确认,看看是否已经被其他依赖间接引入,避免重复添加。 - 每次版本迭代后抽时间做一次依赖分析,及时清理无用依赖,别等堆积太多再处理。
内容的提问来源于stack exchange,提问作者Farheen Sk
相关产品推荐
相关产品推荐

