一、为什么要做这件事?
项目持续研发,不停地在上面新增功能,新增特性,引入新的框架和组件,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
[WAR