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。
我在使用 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。