У меня есть одна проблема с liquibase-maven-plugin 4.2.2. Если я укажу путь к логам как раньше
changeLogFile= classpath:db/changelog/db.changelog-master.xml
я получаю сообщение об ошибке
Ошибка при чтении файла журнала изменений: найдено 2 файла, соответствующих 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, файл:/Users/macbook/IdeaProjects/geek-study-eshop/shop-database/target/classes/db/changelog/db.changelog -master.xml
Я понимаю причину этой ошибки, и ее можно устранить, изменив changeLogFile
на target/db/changelog/db.changelog-master.xml
. Но в этом случае у меня будет префикс target\
в именах файлов, хранящихся в таблице DATABASECHANGELOG
. Но я этого не хочу по некоторым причинам. Я хочу, чтобы все имена файлов были с префиксом db/changelog/...
или classpath:db/changelog/...
. Можно ли это как-то сделать без использования атрибута logicFilePath
?
Я нашел решение! Невозможно изменить поведение liquibase-maven-plugin
, но можно изменить фазу maven, на которой мы запускаем команду liquibase:diff
. Просто используйте mvn clean compile liquibase:diff
! Мы делаем diff после компиляции и перемещения ресурсов, но перед упаковкой jar.