【问题标题】:IncludeAll in databaseChangeLog does not work when ran through maven通过 maven 运行时,databaseChangeLog 中的 IncludeAll 不起作用
【发布时间】:2020-08-18 03:59:07
【问题描述】:

我有这个主变更日志:

databaseChangeLog:
  - includeAll:
      path: db/changelog/changes/

当测试通过 intellij 运行时,一切运行顺利,但是当我尝试通过 maven 运行时,它失败并出现以下错误:

    at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:83)
    at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217)
    at liquibase.Liquibase.update(Liquibase.java:190)
    at liquibase.Liquibase.update(Liquibase.java:179)
    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:366)
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:314)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792)
    ... 82 common frames omitted
Caused by: liquibase.exception.SetupException: Could not find directory or directory was empty for includeAll 'db/changelog/changes/'

当我一一包含更新日志文件时,例如

databaseChangeLog:
  - include:
      file: db/changelog/changes/001-20200503_1300-Initial.yml
  - include:
      file: db/changelog/changes/liquibase-diff-changeLog.yml

intellij 和 maven 一切运行顺利。这是我的插件:

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>org.mapstruct</groupId>
                                <artifactId>mapstruct-processor</artifactId>
                                <version>${mapstruct.version}</version>
                            </path>
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                                <version>${lombok.version}</version>
                            </path>
                        </annotationProcessorPaths>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${maven-war-plugin.version}</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                    <configuration>
                        <argLine>-Dfile.encoding=UTF-8</argLine>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.liquibase</groupId>
                    <artifactId>liquibase-maven-plugin</artifactId>
                    <version>${liquibase-maven-plugin.version}</version>
                    <configuration>
                        <propertyFileWillOverride>true</propertyFileWillOverride>
                        <propertyFile>liquibase.properties</propertyFile>
                        <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-starter-web</artifactId>
                            <version>${spring-boot.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.springframework</groupId>
                            <artifactId>spring-orm</artifactId>
                            <version>${spring.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.liquibase.ext</groupId>
                            <artifactId>liquibase-hibernate5</artifactId>
                            <version>${liquibase-hibernate5.version}</version>
                        </dependency>
                    </dependencies>
                    <goals>
                        <goal>update</goal>
                    </goals>
                </plugin>
            </plugins>
        </pluginManagement>

还有 liquibase.properties

url= jdbc:postgresql://localhost:5432/doctor-service
username= verality
password= verality
driver= org.postgresql.Driver
changeLogFile=db/changelog/db.changelog-master.yaml
diffChangeLogFile=src/main/resources/db/changelog/changes/liquibase-diff-changeLog.yml
outputChangeLogFile=src/main/resources/db/changelog/changes/liquibase-new-changeLog.yml
referenceUrl=hibernate:spring:io.happyharbor.verality?dialect=org.hibernate.dialect.PostgreSQLDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy

我尝试删除surefire插件,但没有区别,所以mavel-compile-plugin似乎应该承担责任。请注意,此问题仅在我通过 Maven 运行测试时才会出现。如果我部署,一切都会再次顺利进行。 似乎这在早期版本中是已知的,但现在应该已经修复了。我错过了什么?

【问题讨论】:

    标签: maven liquibase maven-compiler-plugin


    【解决方案1】:

    我遇到了完全相同的问题,除了从 3.8.6 增加 Liquibase 本身的版本外,我没有找到更好的解决方案(在我的情况下,删除 includeAll 标记不是一个可接受的选项)到 4.2.2 并已解决此问题。拥有最新版本的库通常是个好主意。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 2021-01-13
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多