问题

环境是springboot2.1.8+flyway6.0.4,尝试编译出错,异常堆栈的信息是找不到flywaycallback类

flyway遇到的问题Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.api.callback.FlywayCallbac

解决过程

1、flywaycallback找不到,导致org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration这个bean创建失败

FlywayAutoConfiguration类中找不到FlywayCallback类,实际上是FlywayConfiguration中FlywayCallback找不到,导致创建FlywayConfiguration失败。

2、找到FlywayCallback的import代码

3、找到FlywayCallBack所在的jar包中,到org.flywaydb.core.api.callback路径下确认是否有FlywayCallBack

结论

springboot2.1.8中org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration找不到flyway6.0.4中的FlywayCallback类

即flyway6.0.4将FlywayAutoConfiguration依赖的FlywayCallback干掉了,最终肯定找不到FlywayCallback类。

将flyway的版本降到5.2.4就ok了

思考

java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError错误的时候,需要一步步分析问题,方可解决问题

相关文章:

  • 2021-10-26
  • 2021-12-02
  • 2022-01-05
  • 2021-07-22
  • 2021-11-15
  • 2022-01-03
  • 2021-06-13
  • 2021-07-27
猜你喜欢
  • 2021-12-27
  • 2021-07-26
  • 2021-08-21
  • 2021-11-18
  • 2021-05-24
  • 2021-04-10
相关资源
相似解决方案