错误如下
由于项目比较老,未使用maven进行jar包管理,spring jar包兼容出错
降低spring-boot-test jar包版本后恢复
排查思路:
- 看报错,没找到spring core的getMergedAnnotation这个方法
再看调用它的jar包是spring-boot-test,调用spring-boot-test的是spring-test。 - 故主要是考虑junit、spring-test、spring-boot-test、spring core的兼容性,可以去https://mvnrepository.com/下载和查看jar包发布时间
- 先从最后没找到的spring core开始,版本是2016年的,和其他的几个时间相近,然后是spring-boot-test,是最新的2022年jar包,故判断问题极可能出现在这个包。果然,降低版本后不再报错
java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.getMergedAnnotation(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.getAnnotation(SpringBootTestContextBootstrapper.java:263)
at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.getProperties(