spring-boot 2和liquibase:应用程序yml中的配置被忽略

时间:2018-07-12 18:23:34

标签: java spring-boot liquibase

我尝试将一个应用程序从spring-boot1迁移到spring-boot 2,但是spring-boot部分有很多困难:

我有此日志:

  

在上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名称为“ org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration $ LiquibaseConfiguration”的bean时出错:调用init方法失败;嵌套的异常为java.lang.IllegalStateException:找不到更改日志位置:类路径资源[db / changelog / db.changelog-master.yaml](请添加更改日志或检查您的Liquibase配置

使用此Yaml:

spring:
  application:
    name: xxx
  jpa:
    generate-ddl: false
  liquibase:
      change-log: "classpath:/liquibase/xxx-db/db.changelog.json"

  datasource:
    platform: oracle

liquibase和spring-boot 2似乎忽略了我的application.yml的liquibase部分 有什么主意吗?

我的pom:

    <spring-boot.version>2.0.3.RELEASE</spring-boot.version>
    <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    <liquibase.version>3.4.2</liquibase.version>

1 个答案:

答案 0 :(得分:1)

所以,我发现了:

我在用这个:

  

spring.config.location = other.yml

正在运行的可以在springboot1中找到,但是在springboot2中找不到了

在从spring-boot 1迁移到spring-boot 2的过程中,spring.config.location参数(类似于application.yml的文件所在的位置)的行为已更改。 (来源:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide

在springboot1中,spring.config.location = other.yml添加到默认文件application.yml other.yml文件

在springboot2中,spring.config.location用other.yml文件替换了默认的application.yml文件。

要更正,我需要这样做:

  

spring.config.location = application.yml,other.yml