原创地址:https://www.applebai.com/blog/details/36/20203271.html
今天SpringBoot项目打包发现一直在报错,包jar包冲突,找了好久才找到结果,期间遇到一片博客很讨人厌,我这里想评论一下他(原因:我没有博客园不能直接评论,所以这里写一篇博客记录一下,并提供正确的解决方案)
上图:

说一下:首先,你给的方法很泛(不是烦没打错字)只是市面上大多数可以解决的套路,
再者,你给的解决方案并没有真正的解决问题。所以我留下一句话:不喜勿喷。
SpringBoot事实上是很好的,jar包冲突的时候,它是有提醒你了的,启动第一行就说了有多个类路径jar包存在:Class path contains multiple SLF4J bindings.
SpringBoot适合于小团队及个人开发。是比较方便的。
为什么我要写这篇博客呢,因为我看到jar冲突的真正原因后,很生气,因为原因并不一定在SpringBoot
我这里查出的是腾讯云的cos-api也引入的了日志jar,所以导致冲突,这里是SpringBoot引入cos-api,你就说SpringBoot,如果SpringBoot是被被人引入的,你是不是也要说其他的工具不好呢???再者不好你为什么要用,要记录???这只不过是想比较而言,技术没有老旧,没有好坏,只有喜欢,不喜欢,很多时候有些公司用的还是一二十年前的技术,可能是有些原因不能更换,但是我相信,它能存在在这个世上并风靡一时,说明它一定有它的独特之处。
接下来就是,我查到的一个解决方案,可使用所有jar包冲突问题:
以eclipse为例:
这样的开发工具都会有一个功能:就是查询jar包直接引入/jar包间接引入的功能
如果你不知道你使用的工具怎么找到这个查找页面:百度搜索:eclipse 看引入jar 包的联系(idea同理)
说实话idea的更清晰一些,它是图形化界面
找到冲突的jar包,去除冲突的包即可
代码如下:
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>5.5.3</version>
<exclusions>
<!-- <exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion> -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
声明:我只是对SpirngBoot报不平,没有对任何人做人身攻击。不喜勿喷