今天在用maven package 命令编译项目的时候,出现了错误 find DuplicateClasses 问题,如图
第一步:查看错误日志, org.ow2.asm:asm:jar:5.2:compile和asm:asm:jar:3.1:compile 这两个包在编译的时候存在重复类(具有相同包结构和名称的类),重复类是下面的这几个类,通过上面的描述我们可以知道问题是我们引用了重复的类,我们也明白了解决方法:祛除一个重复的包引用就好。
第二步:找出这两个包的引用位置。因为不是自己直接引用,而且pom中我们引用的那么多,不可能一个一个去点开查看,因为太多,但是不用担心,maven 给我们提供了很好的解决方案:mvn denpendcy:tree 查看引用树但是我一般用mvn denpendcy:tree > tree.txt
e.g 引用过多,git 命令窗口会打印不出那么多日志
第三步:找到包的引用位置。利用<exclusions></exclusions> 祛除
p.s:
a.你自己pom的引用
b.要去除的引用
第四部:编译 mvn package 编译通过