今天部署遇到一个jar包冲突的问题,SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/app/gaas-service.jar!/BOOT-INF/lib/slf4j-log4j12-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/app/gaas-service.jar!/BOOT-INF/lib/logback-classic-1.1.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 详细看下图
当遇到这个问题时,可以这样解决。
1、首先找到pom.xml文件,然后右击鼠标看到下图。这里是使用idea一个功能,看项目引入了哪些包及包的结构
2、选中show Dependencies,鼠标点击,打开后,如下图示
3、在上图界面,按ctrl+f,打开所有引用的包列表,如下图示
4、找到冲突的jar,选中后会如下图示
5、双击红框内的包名,会进入此包所属jar的jar哪一级,如图示
7、zookeeper这个包可能不是你pom里引入的,那就继续在dependencies关系图中找到zookeeper这个包,选中后,再双击zookeeper,会进入zookeeper的上一级包中的pom中,再次在dependencies关系图,包名,选中,再双击。。。知道双击后指向你的pom文件某个引入的包,就算找到jar冲突的引入了。在此应用的dependency中添加
<exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> </exclusion> </exclusions>