【IDEA】无语问苍天的事件
事件描述
在一个项目上,一开始都是很正常地开发,运行
然后呢,突然就冒出了一个问题,
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
这问题,一看就知道是包冲突了呀!问题肯定是出现在新引入的依赖的身上的~
新增的依赖不多,一个一个排除掉,我总能知道是哪个依赖带来的冲突吧。
想法是没问题的。然后,出现诡异的一幕:我把代码都还原了,还是报错!
这。。。特么是怎么回事?
然后接下来,去网上各种找方案,难道是因为缺失了log4j的依赖包吗?
按着网上的写法,不行
按着之前的写法,还是不行
这就奇怪了。
mvn clean 了无数次,没有用。
更诡异的事情来了
大概到中午的时候,它突然好了!
不报错了
把新代码都写回来,它也不报错了,反正无论怎么捣鼓,它都是正常的,
正常得很可怕
所以,原因是什么呢?
因为确实也没想到是什么原因造成的,所以,也就把这个问题当作是“未解之迷” 来处理了,也没继续跟进。
在此过程中,一直以为是包冲突导致的,还把一个依赖去掉了,也刚刚好去掉这个依赖,它就好了
产生了就是这个原因的错觉。(但后来发现其实并不是这个原因,相反,这个去掉后,就真的不行了)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-logging</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
然后继续开发,
又来了
再一次,在下午的时候,它又来了,相同的问题,又出来了。
并且原来以为的包冲突问题,也变成“无效方案”—— 说明不是那个依赖导致的原因。
emmm, 真的陷入了绝境了。
无意中发现
在这个过程中,mvn clean 过, 把target 目录删除过,写的代码反复定位过,甚至把 idea 清缓存重启过。
都没有解决。
然后在一个无意中的运作,终于发现,
(要使项目生效,必须要在maven处,对着模块,右键 reload project 一下,才行。)
它之所以表现出这么诡异的问题,是因为idea 对于本地的修改没有及时响应,并且它是滞后很多很多才会表现出来,
所以当时改过什么东西,无论是改好,还是改坏了,在当时都无法实时看到。所以,定位问题也变得异常的困难了。
知道这个原因后,再去重现就正常了。这次是真正的正常了。
最后的结果就是,代码本身没有问题。
但一开始可能确实出现包冲突或什么的原因,导致出现了问题,并且“改好后”它没有办法实时表现出来,所以不知道是好是坏,
然后,可能过了很久后,(一两小时), 它加载好后,又体现出来效果了。
于是在这么长的一个时间段内,做了无数的运作,也不知道是因为哪个操作导致成功。——之前也经常出现这种 “不知道为什么,它就好了” 的情况
虽然很蠢,但真的被折磨了很久。害。