Liquibase includeAll找不到基本路径

时间:2019-01-18 15:31:55

标签: gradle liquibase

将项目从Maven迁移到Gradle时,我遇到了以下问题。

我的文件结构如下:

Filesystem

changelog-master.xml包含changelog-v1-0.xml,然后其中应包含目录v1-0,并包含以下行:   <includeAll path="src/main/resources/liquibase/changelogs/v1-0/" errorIfMissingOrEmpty="true" />。 这样很好。这:<includeAll path="/liquibase/changelogs/v1-0/" errorIfMissingOrEmpty="true" relativeToChangelogFile="true" />没有。 我收到以下错误消息:

Cannot find base path 'src/main/resources/liquibase/changelogs/changelog-v1-0.xml' 

在3.6.2版中使用liquibase。我还尝试了3.6.0、3.6.1和3.5.5版本。我正在使用gradle在4.9版中构建我的项目,并在2.0.1版中构建插件,还尝试了1.2.4和2.0.0。我尝试了所有可能的路径组合,无论是否设置了relativeToChangelogFile="true",到目前为止都没有任何效果。我需要相对于变更日志文件的路径。我还提到了jira,github和stackoverflow中的各种问题,到目前为止没有任何效果。

为什么这不起作用?

我想这个错误只能由liquibase社区解决,因为这似乎是liquibase本身的问题。

1 个答案:

答案 0 :(得分:0)

我通过在build.gradle中的liquibase插件活动的定义中添加类路径设置来解决此错误

liquibase {
  activities {
    main {
        classpath "$projectDir/src/main/resources/liquibase"
        changeLogFile 'r1.0/r1.0-master.yaml'
        driver 'com.mysql.cj.jdbc.Driver'
        url 'jdbc:mysql://localhost:3306/dbName'
        username 'root'
        password 'password'
    }

}}

然后,在主变更日志文件r1.0-master.yaml中,includeAll指向相对路径included,其他我的变更日志文件将保存在该相对路径中。

databaseChangeLog:
  - includeAll:
      path: included
      relativeToChangelogFile: true