Liquibase - 仅在应用程序启动时执行变更集

Liquibase - execute changesets only when application is starting

我在 Spring 启动应用程序中有简单的 liquibase 配置:

@Configuration
public class MySQLConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource getDataSource()
    {
        DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
        dataSourceBuilder.driverClassName("com.mysql.jdbc.Driver");
        dataSourceBuilder.url("jdbc:mysql://localhost:3306/test");
        dataSourceBuilder.username("root");
        dataSourceBuilder.password("root");
        return dataSourceBuilder.build();
    }

    @Bean(name = "liquibase")
    public SpringLiquibase liquibase(DataSource dataSource) {
        SpringLiquibase springLiquibase = new SpringLiquibase();
        springLiquibase.setDataSource(dataSource);
        springLiquibase.setChangeLog("classpath:liquibase/db.changelog-master.xml");
        return springLiquibase;
    }
}

问题是 "db.changelog-master.xml" 文件中的所有变更集在我使用 maven (mvn clean install) 构建应用程序时执行。我只想在我的应用程序启动时执行它(因此,相应地:mvn spring-boot:运行)。我应该设置什么配置来实现这个?

事实上@SpringBootTest 在这里是个问题。它启动一个应用程序上下文,因此导致在 maven 安装阶段执行 liquibase 变更集。