类型 org.flywaydb.core.api.callback.FlywayCallback 不存在

Posted

技术标签:

【中文标题】类型 org.flywaydb.core.api.callback.FlywayCallback 不存在【英文标题】:Type org.flywaydb.core.api.callback.FlywayCallback not present 【发布时间】:2020-12-20 10:12:58 【问题描述】:

将 Flyway 从 5.2.4 升级到

compile group: 'org.flywaydb', name: 'flyway-core', version: '6.5.0' 

运行 spring boot 应用程序时出现错误:

 Unsatisfied dependency expressed through method 'mapDao' parameter 0;
nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration':
Unexpected exception during bean creation;
nested exception is java.lang.TypeNotPresentException:
Type org.flywaydb.core.api.callback.FlywayCallback not present

如果我不升级应用程序运行并出现警告:

Flyway upgrade recommended: PostgreSQL 12.3 is newer than this version of Flyway and support has not been tested.

我想解决的问题

我应该如何配置应用程序以使其使用 Flyway 6.5 和 Spring Boot 2.1.2.RELEASE ?

【问题讨论】:

【参考方案1】:

org.flywaydb.core.api.callback.FlywayCallback 接口在 2018 年被 org.flywaydb.core.api.callback.Callback 替换,因此只需更新您的代码以使用新接口即可。

【讨论】:

应用源码中没有Flyway相关的单行代码。看来spring可以管理它。 我减少了 flyway 版本,一切都对我有用【参考方案2】:

它并没有真正回答问题,但在我的情况下是可以接受的。 我刚刚将 Spring Boot 依赖项更新为 2.2.2 并且错误消失了。 无需更改应用源代码。

【讨论】:

以上是关于类型 org.flywaydb.core.api.callback.FlywayCallback 不存在的主要内容,如果未能解决你的问题,请参考以下文章

原因:org.flywaydb.core.api.FlywayException:验证失败。迁移 2 的迁移校验和不匹配

预测试 SBT 任务:无法实例化 JDBC 驱动程序

SpringBoot 整合Flyway 常见问题科普解决

SpringBoot 整合Flyway 常见问题科普解决

JAVA中值类型和引用类型的区别

强类型和弱类型,静态类型和动态类型语言如何区分