How to run a liquibase job as a maven build

czetsuya
2 min readMay 16, 2021

When liquibase is integrated into a maven project we can take advantage of the liquibase maven plugin to create a maven build for us. This will run the changesets over a database.

1. Liquibase Plugin

First, we need to add the liquibase plugin to our maven project.

<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.5.3</version>
<configuration>
<changeLogFile>${liquibase.changeLogFile}</changeLogFile>
<driver>${db.driver}</driver>
<url>${db.url}</url>
<defaultSchemaName>${db.schema}</defaultSchemaName>
<username>${db.username}</username>
<password>${db.password}</password>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
<expressionVariables>
<db.schema>${db.schema}</db.schema>
</expressionVariables>
</configuration>
</plugin>

Take note of the variables.

2. Create a Build Configuration

This will depend on your IDE, but for this example, we will use Intellij.

2.1 Add a new maven run/debug configuration with the following details:

This liquibase build is for an open-source project I’ve been working with: https://github.com/meveo-org/meveo.

2.2 Make sure to set each of the environment variables.

2.3 And if you’re wondering how the maven profile looks like:

We configure the root changeset file, which for this configuration is rebuild.

<profile>
<id>rebuild</id>
<properties>
<liquibase.changeLogFile>src/main/db_resources/changelog/db.rebuild.xml</liquibase.changeLogFile>
</properties>
</profile>

Originally published at https://www.czetsuyatech.com/2021/04/how-to-run-liquibase-job-as-maven-build.html.

--

--

czetsuya

Open for Collaboration | Senior Java Backend Developer