Liquibase 找不到更改日志文件

Liquibase cannot find changelog file

我的 spring boot 2 应用程序出现以下错误:

Caused by: liquibase.exception.ChangeLogParseException: Error Reading Migration File: class path resource [src/main/resources/changelogs/changelog-1.0.xml] cannot be resolved to URL because it does not exist at liquibase.parser.core.xml.XMLChangeLogSAXParser.parseToNode(XMLChangeLogSAXParser.java:118) at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:15) at liquibase.changelog.DatabaseChangeLog.include(DatabaseChangeLog.java:525) at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:334) ... 190 common frames omitted

在应用程序属性中我们有:spring.liquibase.change-log=classpath:/changelogs/changelog-master.xml

所有脚本都在 spring 引导资源文件夹 /src/main/resources/changelogs

中构建

changelogs 中,fodler 是主控 xml 并且变更日志也是变更集。

对 master xml 中变更集变更日志的引用是这样的:

<include file="src/main/resources/changelogs/changelog-1-0.xml"/>

我找不到这不起作用的原因。

我试过 relativeToChangelogFile="true" 并且在文件中仅使用 file="changelog-1-0.xml" 并且这有效,为什么?

你不应该在主变更日志中的路径中包含 src/main/resouces;这些目录不会反映在生成的 jar 中。试试 changelongs/changelog-1-0.xml.