【问题标题】:Flyway deprecation message logged when using Spring Boot 2使用 Spring Boot 2 时记录的 Flyway 弃用消息
【发布时间】:2019-01-25 02:25:36
【问题描述】:
我使用 Spring Boot 2.0.4.RELEASE 和 Flyway 5.1.4。启动我的 Spring Boot 应用程序时,我收到警告 Flyway.setCallbacks(FlywayCallback) has been deprecated and will be removed in Flyway 6.0. Use Flyway.setCallbacks(Callback) instead.
这似乎是由 Spring Boot 引起的,因为我自己没有配置任何回调。有什么方法可以禁用此警告或防止其根本原因?
【问题讨论】:
标签:
java
spring-boot
flyway
【解决方案1】:
出现问题是因为您将 Flyway 5.1 与 Spring Boot 2.0 一起使用。 Spring Boot 2.0 针对 setCallbacks(FlywayCallback[]) 未被弃用且在调用时不会生成警告的 Flyway 5.0 进行编译并提供依赖管理。
如果您想继续使用 Boot 的自动配置,那么在撰写本文时,您有两个选择:
- 通过删除对 Flyway 版本的覆盖并允许 Spring Boot 的依赖管理来控制版本,返回到 Flyway 5.0.x。
- 自定义您的日志记录配置,以便不记录警告。
在 Spring Boot 2.0.x 中应该可以改善这种情况。目前,即使数组为空,也会调用setCallbacks(FlywayCallback[])。这对 Flyway 5.0 来说是良性的,但会不必要地生成您在 5.1 中看到的警告。 This issue 会解决这个问题。