需求背景:一个用spring旧的版本写的项目中接入了新的版本写的日志监控平台,引入了其他版本的写的自定义脱敏依赖包,导致了项目现在启动不起来,爆出的错误如下:
java.lang.NoSuchMethodError: org.springframework.expression.spel.SpelParserConfiguration.<init>
多个版本中都出现了该类,然后编译器蒙圈了,找不到,最终决定了用4.2.7。
然后下面是解决步骤,先选择一个想要去除的版本进去,然后选择scrool from source,定位到那个jar包,然后复制他的ga号(右键open libary settings),使用mvn dependency:tree >temp,在该文件中找到需要剔除的其他的版本都源自于哪里,exculed掉
pom
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
</exclusion>
gradle
exclude group: 'org.springframework', module: 'spring-expression'
重启解决。