java.lang.NoSuchMethodError 可能的原因
这个错误出现的次数有点多,出现的原因也是千奇百怪,所以记录一下。
1. Maven 依赖冲突
这方面这篇文章已经讲得很清楚了:Maven中依赖的版本号不一致带来的问题,这里简单总结下:
版本冲突时,版本的优先级规则:
-
- 依赖层数少的优先。
- 当依赖层数相同时,在 pom.xml 中先写的优先。
查看冲突:
mvn dependency:tree -Dverbose
解决方法:
-
- 用<properties>同一关联版本号,比如Spring的一些 starter 包都可以用同一版本号
- 用 <dependencies> 管理 jar 包版本
提前规避方法:
引入 jar 包前,可以先去 https://mvnrepository.com/ 网站,查询相关依赖信息,通过这个去查询适合的版本,如下图: