Maven项目迁移Junit5后仍存在Junit4依赖,如何排查引入来源?
排查Junit4传递依赖残留的实用思路
以下是针对你的问题的具体排查步骤:
清理IDE缓存并同步Maven
很多IDE会缓存依赖文件,即使Maven已更新,IDE可能未同步。执行:- 刷新Maven项目(IntelliJ点击Maven窗口刷新按钮;Eclipse右键项目→Maven→Update Project)
- 清理IDE缓存(IntelliJ:File→Invalidate Caches...→Invalidate and Restart;Eclipse:Project→Clean)
查看全范围的Maven依赖树
默认的mvn dependency:tree仅展示compile和test范围的依赖,试试覆盖所有范围:mvn dependency:tree -Dscope=compile,runtime,test,provided,system也可以直接过滤groupId为junit的依赖,快速定位:
mvn dependency:list -DincludeGroupIds=junit检查生效的POM配置
执行mvn help:effective-pom生成最终生效的pom文件,搜索是否存在JUnit4相关的依赖配置,排查是否通过依赖管理或父pom隐式引入。直接定位类所在的Jar包
在IDE中按住Ctrl(或Cmd)点击代码里的import org.junit.Test中的Test类,查看该类所属的Jar包名称和路径,就能直接找到提供该类的依赖,再反向排查Maven依赖链。检查本地Maven仓库
前往本地Maven仓库默认路径~/.m2/repository/junit/junit,查看是否存在JUnit4版本的Jar包(如junit-4.9.jar)。如果有,删除该目录后执行mvn clean install,观察是否会重新下载JUnit4包,以此定位触发下载的依赖。排查自定义Maven配置与多模块依赖
检查本地/全局settings.xml中的profile是否自动引入JUnit4;若为多模块项目,检查其他模块是否引入了JUnit4并传递到当前模块。
内容的提问来源于stack exchange,提问作者Fisher Coder
相关产品推荐
相关产品推荐

