java.lang.NoSuchMethodError 可能的原因

这个错误出现的次数有点多,出现的原因也是千奇百怪,所以记录一下。

1. Maven 依赖冲突

这方面这篇文章已经讲得很清楚了:Maven中依赖的版本号不一致带来的问题,这里简单总结下:

  版本冲突时,版本的优先级规则:

    • 依赖层数少的优先。
    • 当依赖层数相同时,在 pom.xml 中先写的优先。

  查看冲突:

    mvn dependency:tree -Dverbose

  解决方法:

    • 用<properties>同一关联版本号,比如Spring的一些 starter 包都可以用同一版本号
    • 用 <dependencies> 管理 jar 包版本

   提前规避方法:

    引入 jar 包前,可以先去 https://mvnrepository.com/ 网站,查询相关依赖信息,通过这个去查询适合的版本,如下图:

 

 

posted @ 2020-11-28 11:24  上课爱睡觉  阅读(285)  评论(0)    收藏  举报