最近闲下来,想解决一下maven打包后包过大的问题。也就是,我们要找出项目里面实际上并没有用到的包,但是却依赖了的。
就是我们要去掉没用到的包。
搜索了大半天,终于发现maven有个命令是用来分析依赖的。
mvn dependency:analyze
好,接下来我们在eclipse里面运行一下试试看。如下图:
运行结果如下:
这里分析结果我们发现这个命令会将依赖分为两类:
第一类:Used undeclared dependencies found
这个是指,某些依赖的包在代码中有用到它的代码,但是它并不是直接的依赖,也没有在pom中声明,是通过传递引入的一类包。
这里重点我们关注第二类:
Unused declared dependencies found
这个就是我们在pom中声明依赖了,但是在实际代码中并没有用到的包!也就是多余的包。
注意:这里说的实际代码没有用到,指的是在main/java和test里没有用的,但是并不是意味着别的地方没有用到,所以在删除依赖的时候,我们要小心,最好备份,例如我们在web.xml里面用到某些类,这个类依赖包A,这个maven是分析不出来的。还有运行时需要用到的也分析不出来!!!