如何在带有Spring Boot的Grails 3项目中使用Flyway';s自动配置

如何在带有Spring Boot的Grails 3项目中使用Flyway';s自动配置,grails,spring-boot,flyway,grails-3.0,Grails,Spring Boot,Flyway,Grails 3.0,根据以下说明,在Grails 3项目中使用Flyway应该是可能的: Grails 3.x基于Spring Boot,为Flyway提供了开箱即用的集成。 您只需将flyway core添加到构建中即可。gradle: 编译“org.flywaydb:flywaycore:4.1.1” 然后,Spring Boot将自动将Flyway与其数据源连接起来,并在启动时调用它 这对我不管用。Flyway不会在应用程序启动时启动。在日志中,我看到一些可疑的行: 因此,在我看来,它不起作用,因为DataS

根据以下说明,在Grails 3项目中使用Flyway应该是可能的:

Grails 3.x基于Spring Boot,为Flyway提供了开箱即用的集成。
您只需将flyway core添加到构建中即可。gradle:
编译“org.flywaydb:flywaycore:4.1.1”

然后,Spring Boot将自动将Flyway与其数据源连接起来,并在启动时调用它

这对我不管用。Flyway不会在应用程序启动时启动。在日志中,我看到一些可疑的行:

因此,在我看来,它不起作用,因为
DataSourceAutoConfiguration
被排除在自动配置之外

这个分析正确吗

DataSourceAutoConfiguration
被排除在外的原因和位置?应该是在Grails的深处,因为我不知道我的代码中有任何地方会导致这种情况

我如何才能使flyway集成到Grails中,正如flyway文档所承诺的那样?我知道我可以通过resources.groovy(我的项目中的工作代码,灵感来源于):

但如果可能的话,我更喜欢自动配置方法,因为它支持许多现成的flyway属性,并且我可以保持我的resources.groovy整洁

FlywayAutoConfiguration did not match - @ConditionalOnClass found required class 'org.flywaydb.core.Flyway' (OnClassCondition) - @ConditionalOnProperty (flyway.enabled) matched (OnPropertyCondition) - @ConditionalOnBean (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans (OnBeanCondition) ... Exclusions: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
@Configuration
@ConditionalOnClass(Flyway.class)
@ConditionalOnBean(DataSource.class)
@ConditionalOnProperty(prefix = "flyway", name = "enabled", matchIfMissing = true)
@AutoConfigureAfter({ DataSourceAutoConfiguration.class,
        HibernateJpaAutoConfiguration.class })
public class FlywayAutoConfiguration {
if (application.config.flyway.enabled != false) {
    flyway(Flyway) { bean ->
        bean.initMethod = 'migrate'
        dataSource = ref('dataSource')
        baselineOnMigrate = application.config.flyway.baselineOnMigrate
    }

    BeanDefinition sessionFactoryBeanDef = getBeanDefinition('sessionFactory')

    if (sessionFactoryBeanDef) {
        def dependsOnList = ['flyway'] as Set
        if (sessionFactoryBeanDef.dependsOn?.length > 0) {
            dependsOnList.addAll(sessionFactoryBeanDef.dependsOn)
        }
        sessionFactoryBeanDef.dependsOn = dependsOnList as String[]
    }
}