原因
最近爆出log4j2 2.14及之前的版本存在严重漏洞,公司发出公告,各项目组进行紧急修复,虽然我们项目组没有引入log4j2,但是不知道第三方依赖是否有引入,又不能一个个点开第三方依赖包去查,照着“全世界这么大,我遇到的问题,前辈们肯定也遇到过”的逻辑,在网上找了一下,果然有发现。。。
解决方案
第一种
通过Show Dependencies(快捷键:Ctrl+shift+Alt+U),可以查看整个项目所有依赖的层次图。
可以通过Ctrl+F,搜索想要查询的依赖,看看有哪些第三方或者官方依赖引入了它。
不过这种方式,显示的内容实在是太多了,不是很方便。
第二种
使用命令(Run Anything,快捷键:Ctrl+Ctrl)指定依赖的groupId和artifactId直接查找那个依赖引入了它。
mvn 项目名 dependency:tree -Dverbose -Dincludes=groupId:artifactId
后面是想要查找jar包的groupId和artifactId。
比如我现在要查找springcloud gateway引入的webflux依赖,命令如下:
mvn ptr-applet-background dependency:tree -Dverbose -Dincludes=org.springframework.boot:spring-boot-starter-webflux
查询结果如下:
上图中显示了哪个项目引入的哪个依赖引入了webflux,很清晰,也很简洁。