解决jar包冲突- 2021-01-30 18:01- maven: jar包冲突


    在平时的工作中经常会出现jar包冲突,某个类找不到,导致系统无法启动。

    第一步:找到冲突的类所在包路径
    第二步:打印所有的maven依赖
    命令:mvn dependency:tree >> D:/tree.txt
    第三步:查找

    • 最后写着compile的就是编译成功的。
    • 最后写着omitted for duplicate的就是有jar包被重复依赖了,但是jar包的版本是一样的。
    • 最后写着omitted for conflict with xxxx的,说明和别的jar包版本冲突了,而该行的jar包不会被引入。

    第四步:解决冲突
    1.修改pom文件中两个dependency元素的位置。如果两个dependency都引用了一个jar包,但是版本不同,classloader只会加载jar包在pom文件中出现的第一个版本,以后出现的其他版本的jar包会被忽略。
    不建议使用该方法,因为引用不同版本的jar包本身就是很危险的。
    2.推荐使用 使用标签来去掉某个dependency依赖中的某一个jar包或一堆jar包,中的jar包或者依赖的相关jar包都会被忽略,从而在两个dependency都依赖某个jar包时,可以保证只使用其中的一个。
    **