java - Liquibase 找不到变更日志文件

标签 java spring spring-boot liquibase

我的 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 Boot 的资源文件夹 /src/main/resources/changelogs

changelogs fodler 是主要的 xml 和带有变更集的变更日志。

对主 xml 中变更集变更日志的引用如下:

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

我找不到这行不通的原因。

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

最佳答案

您不应在主变更日志内的路径中包含src/main/resouces;这些目录不会反射(reflect)在生成的 jar 中。尝试一下 changelongs/changelog-1-0.xml

关于java - Liquibase 找不到变更日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58398863/

相关文章:

java - 尽管超时时间较低,但稳定数量的 HBase 请求几乎正好需要 5000 毫秒才能完成(成功)。不知道为什么

java - 为什么一个空的 Java 程序会消耗内存?

java - Spring MVC 中的 jackson

同一应用程序中的 Spring Boot OAuth 2.0 和 OAuth 1.0a 客户端

java - 当 ID 是 URL 时的 API REST

java - 在 Heroku 中使用 Spring Boot 应用程序发送电子邮件

Twitter API请求限制问题

java - 我想我想出了比较两个日期的最糟糕的方法;有可能让它变得更好吗?

java - 支持所有浏览器的网络应用程序?

java - 无法使用具有多个步骤文件的 Cucumber 配置 Spring Boot