Liquibase maven 插件中的变更日志路径解析

Changelog path resolving in Liquibase maven plugin

我在使用 liquibase-maven-plugin 4.2.2 时遇到了一个问题。如果我像以前一样指定日志路径

changeLogFile= classpath:db/changelog/db.changelog-master.xml

我收到一个错误

Error Reading Changelog File: Found 2 files that match classpath:db/changelog/db.changelog-master.xml: jar:file:/Users/macbook/IdeaProjects/geek-study-eshop/shop-database/target/shop-database-1.0-SNAPSHOT.jar!/db/changelog/db.changelog-master.xml, file:/Users/macbook/IdeaProjects/geek-study-eshop/shop-database/target/classes/db/changelog/db.changelog-master.xml

我明白这个错误的原因,可以通过将 changeLogFile 更改为 target/db/changelog/db.changelog-master.xml 来解决它。但在这种情况下,我将在 DATABASECHANGELOG table 中存储的文件名中添加 target\ 前缀。但出于某些原因我不想那样。我希望那里的所有文件名都带有前缀 db/changelog/...classpath:db/changelog/...。是否可以在不使用 logicFilePath 属性的情况下以某种方式做到这一点?

我找到了解决办法!无法更改 liquibase-maven-plugin 行为,但可以更改我们 运行 liquibase:diff 命令所在的 Maven 阶段。只需使用 mvn clean compile liquibase:diff!我们在编译和资源移动之后但在 jar 打包之前进行 diff。