Разрешение пути к списку изменений в плагине Liquibase maven

#java #database #maven #migration #liquibase

#java #База данных #maven #миграция #ликвидная база

Вопрос:

У меня есть одна проблема с 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 , 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 . Но в этом случае у меня будет target префикс в именах файлов, хранящихся в DATABASECHANGELOG таблице. Но я не хочу этого по некоторым причинам. Я хочу, чтобы все имена файлов были с префиксом db/changelog/... или classpath:db/changelog/... . Возможно ли это как-то сделать без использования logicFilePath атрибута?

Ответ №1:

Я нашел решение! Нет никакого способа изменить liquibase-maven-plugin поведение, но можно изменить фазу maven, на которой мы запускаем liquibase:diff command. Просто используйте mvn clean compile liquibase:diff ! Мы выполняем diff после компиляции и перемещения ресурсов, но перед упаковкой jar.