jar包冲突表现
程序运行有如下报错的现象:ClassNotFoundException
or NoSuchMethodError
jar包冲突排查
-
jar包冲突的原因:
有两个地方同时引入了一个相同的jar包,但是这两个jar包的版本不同
-
排查方式:
使用
mvn -Dverbose dependency:tree
查看maven树控制台判断信息:
omitted for duplicate
omitted for conflict
,可以清晰地看到哪些jar包冲突了
解决冲突
-
(方式1)使用exclusion标签将冲突的jar排除
<exclusion> <artifactId></artifactId> <group></group> </exclusion>
-
(方式2)版本统一管理
<properties> <java.version>1.8</java.version> <rocketmq.version>4.0.0-incubating</rocketmq.version> </properties>