【IntelliJ IDEA】如何在pom.xml中去除maven中未使用的依赖
pom.xml中去除maven中未使用的依赖
- 主要解决的问题
- 一、怎么做?
- 二、重点依赖类型解析说明
- 三、什么时候做?
- 四、有什么风险要注意的?
- 五、补充一个快捷方法使用
- 六、IDEA的terminal中如何才能使用命令mvn呢?
主要解决的问题
你的项目中pom.xml文件是不是也引了一堆jar依赖,如何对这些jar包进行清理呢?一起行动起来吧~~~~
一、怎么做?
对于Maven项目,处理起来相对简单。Maven自身提供了一款强大的依赖分析工具,只需简单的命令输入即可轻松实现。在IntelliJ IDEA中,你可以切换到Terminal(终端)窗口,或者在命令行中导航至项目根目录,执行以下命令:
mvn dependency:analyze
随后,仔细查看控制台输出的日志信息,特别关注以下几个部分:
[WARNING] Used undeclared dependencies found:
[WARNING] org.springframework:spring-webmvc:jar:5.3.31:compile
[WARNING] org.springframework:spring-beans:jar:5.3.31:compile
[WARNING] com.baomidou:mybatis-plus-core:jar:3.5.5:compile
[WARNING] com.mxpt:mxpt-api-system:jar:1.0.0:compile
[WARNING] org.springframework:spring-context:jar:5.3.31:compile
[WARNING] org.springframework:spring-core:jar:5.3.31:compile
[WARNING] org.springframework.boot:spring-boot:jar:2.7.18:compile
[WARNING] org.springframework:spring-expression:jar:5.3.31:compile
[WARNING] org.springframework:spring-tx:jar:5.3.31:compile
[WARNING] org.slf4j:slf4j-api:jar:1.7.36:compile
[WARNING] com.alibaba:fastjson:jar:1.2.83_noneautotype:compile
[WARNING] com.mxpt:mxpt-common-core:jar:1.0.0:compile
[WARNING] org.mybatis:mybatis-spring:jar:2.1.2:compile
[WARNING] org.apache.commons:commons-lang3:jar:3.12.0:compile
[WARNING] io.swagger:swagger-annotations:jar:1.6.2:compile
[WARNING] org.springframework:spring-web:jar:5.3.31:compile
[WARNING] com.baomidou:mybatis-plus-annotation:jar:3.5.5:compile
[WARNING] org.springframework.boot:spring-boot-autoconfigure:jar:2.7.18:compile
[WARNING] com.baomidou:mybatis-plus-extension:jar:3.5.5:compile
[WARNING] com.mxpt:mxpt-common-security:jar:1.0.0:compile
[WARNING] commons-io:commons-io:jar:2.13.0:compile
[WARNING] jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[WARNING] org.apache.commons:commons-csv:jar:1.8:compile
[WARNING] org.springframework.cloud:spring-cloud-context:jar:3.1.7:compile
[WARNING] org.mybatis:mybatis:jar:3.5.15:compile
[WARNING] com.fasterxml.jackson.core:jackson-annotations:jar:2.13.5:compile
[WARNING] org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.83:compile
[WARNING] Unused declared dependencies found:
[WARNING] com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:jar:2021.0.5.0:compile
[WARNING] com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:jar:2021.0.5.0:compile
[WARNING] com.alibaba.cloud:spring-cloud-starter-alibaba-sentinel:jar:2021.0.5.0:compile
[WARNING] de.codecentric:spring-boot-admin-starter-client:jar:2.7.11:compile
[WARNING] com.baomidou:mybatis-plus-boot-starter:jar:3.5.5:compile
[WARNING] org.springframework.boot:spring-boot-starter-actuator:jar:2.7.18:compile
[WARNING] io.springfox:springfox-swagger-ui:jar:3.0.0:compile
[WARNING] org.postgresql:postgresql:jar:42.7.2:compile
[WARNING] com.mxpt:mxpt-common-datasource:jar:1.0.0:compile
[WARNING] com.mxpt:mxpt-common-datascope:jar:1.0.0:compile
[WARNING] org.projectlombok:lombok:jar:1.18.30:provided
[WARNING] net.sourceforge.javacsv:javacsv:jar:2.0:compile
[WARNING] cn.hutool:hutool-all:jar:5.8.0:compile
[WARNING] org.springframework.boot:spring-boot-starter-thymeleaf:jar:2.7.17:compile
[WARNING] org.springframework.cloud:spring-cloud-starter-bootstrap:jar:3.1.7:compile
二、重点依赖类型解析说明
共分为两种:
一、[WARNING] Used undeclared dependencies found:
Used undeclared dependencies found这一部分指的是项目中实际使用了某个依赖包,但并未在pom.xml文件中显式声明。这些依赖包可能是通过其他依赖间接引入的。例如,假设你的项目在pom.xml中声明了对A.jar的依赖,但未声明对B.jar的依赖。而A.jar的依赖树中又包含了对B.jar的依赖。通过运行mvn dependency:analyze命令,如果输出如下警告:
mvn dependency:analyze
出现[WARNING] Used undeclared dependencies found: B.jar
这意味着你的项目代码中实际上使用了B.jar中的类或接口。在这种情况下,你应该将B.jar添加到项目的pom.xml文件中,以确保依赖关系的正确声明。
二、[WARNING] Unused declared dependencies found:
Unused declared dependencies found这一部分则是指你在项目的pom.xml文件中声明了某个依赖包,但在实际的项目代码中并未使用到它。这些依赖包可能是不必要的,可以考虑从pom.xml中移除。
然而,在删除这些依赖之前,请务必注意以下几点:“未使用”的定义仅限于main/java和test源代码目录,不包括配置文件或其他可能的扩展点。
在删除依赖之前,务必备份pom.xml文件,以防万一误删重要依赖导致的问题。
Maven的依赖分析工具并非万能,有时可能会产生误报。因此,在删除任何依赖后,都应进行充分的测试以验证项目的稳定性。
三、什么时候做?
新项目初始化时: 在创建新项目并添加依赖时,务必谨慎选择所需的jar包,避免盲目复制旧项目的依赖配置,从而减少后续不必要的清理工作。
功能代码重构时: 在进行功能代码的重构过程中,可以顺便进行一次依赖项的审查与清理。由于后续还有自测和提测等环节,即使有误删的情况也能及时发现并修复。
四、有什么风险要注意的?
依赖分析工具的结果并非绝对准确,可能存在误判的情况。
例如,某些工具可能无法识别某些特殊的使用场景(如注解处理器等)。因此,在删除依赖后,请务必进行全面的测试以验证项目的正确性。
五、补充一个快捷方法使用
IntelliJ IDEA 自带的 maven 工具使用方法打开IntelliJ IDEA
-》导航至项目的pom.xml文件所在目录
-》右键点击pom.xml文件
-》选择“Maven”菜单中的“Analyze Dependencies”选项
-》IntelliJ IDEA将自动分析项目的依赖关系,并在弹出的窗口中展示分析结果。
你可以根据分析结果进行相应的操作,如添加缺失的依赖或删除未使用的依赖等。通过以上步骤,你可以在IntelliJ IDEA中轻松管理项目的依赖关系,确保项目的稳定性和可维护性。
六、IDEA的terminal中如何才能使用命令mvn呢?
一、安装apache-maven-3.5.3,我使用的是免安装版的,直接解压缩就可以使用。
首先,记录一下我们maven包所在的路径信息,我使用的包的路径信息为:
D:/setup/apache-maven-3.5.3
二、配置环境变量。
1. 打开环境变量配置。右键计算机→属性→高级系统设置→高级→环境变量,在系统变量中配置。
2. 配置MAVEN_HOME。在系统变量中新建,变量名MAVEN_HOME,变量值,maven文件夹路径,我的路径是D:/setup/apache-maven-3.5.3,最好不要有中文,保存。
3. 配置path,找到path系统变量,点开,新建,输入%MAVEN_HOME%\bin
4、验证是否安装完成,运行cmd,输入mvn -v,显示maven版本则成功。
参考链接:https://blog.csdn.net/qq_33193972/article/details/147430411