liquibase-maven-plugin: как указать путь к changeLogFile, который находится в зависимой jar?
Дано:
1. Есть два проекта на Java. Первый - это бизнес логика приложения. Второй - это классы модели данных, используемые в первом приложении. Также в нем содержатся скрипты миграции changeLog.xml.
Первое приложение содержит зависимость на второе и использует его классы.
2. Подключаем в первое приложение liquibase-maven-plugin:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
**<changeLogFile>
???
</changeLogFile>**
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}</url>
<username>${mysql.login}</username>
<password>${mysql.password}</password>
</configuration>
</plugin>
Как в changeLogFile указать путь к changeLog.xml из зависимой библиотеки?
Liquibase лежит в src/main/resource/db второго проекта
Ответы (2 шт):
Удобнее будет использовать файл конфигурации, который следует поместить рядом с pom.xml
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
<propertyFile>liquibase.properties</propertyFile>
</configuration>
</plugin>
Файл с свойствами, к примеру, может быть следующим
classpath=db/liquibase/bin/ojdbc8.jar
driver=com.mysql.jdbc.Driver
changeLogFile=path/to/changelog.xml
url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}
username: USERNAME
password: PASSWORD
Накат изменений по конфигу в Idea
liquibase:update -f PROJECT_FOLDER/pom.xml
Решение оказалось следующим: чтобы плагин liquibase установленный в проекте с бизнес-логикой мог обратится к changeLog.xml в проекте с моделью данных, нужно добавить его в зависимости плагина:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
// Путь от корня проекта model-project до файла liquibase.properties
<changeLogFile>db\liquibase.properties</changeLogFile>
</configuration>
<dependencies>
// Добавить model-project в classPath
<dependency>
<groupId>model.project.group</groupId>
<artifactId>model-project</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>