NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central · #2296 by repository stars
A Gradle plugin for running the Liquibase database upgrade tool.
Last release 10 months ago
06 Dec 2025
Release timing varies
gaps range from 2 weeks to 1.4 years
Nearly every release is documented
notes for 21 of 21 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
21 releases · first in 2015
Releasing version 3.1.0
Releasing version 3.1.0
Updated to Gradle 8.6 and replaced the maven publisher with vanniktech's maven publisher to be compatible with Sonatype's new publishing model.
Made the plugin compatible with Gradle's Configuration Cache with thanks to @Nouran-11 and @abstratt. Resolves #166 and #176
Made the plugin compatible with Gradle 9, with thanks to Alexander Zhukau (@zhukau). Resolves #173 and #177
One column per quarter.
Updated the documentation, released 3.0.2
Updated the documentation, released 3.0.2
add --integration-name parameter to all commands executed through gradle, with thanks
@StevenMassaro. Fixes #155.
Make argumentBuilder internal to avoid fingerprinting issues, with thanks to Avery Aube (@averyaube). Fixes #162.
Releasing version 3.0.1 of the plugin
Releasing version 3.0.1 of the plugin
Fixed a "fingerprinting" issue, with thanks to @averyaube. Fixes #120.
Added support for Liquibase up to version 4.31.1. Note that using version 4.30+ requires an
explicit dependency to org.apache.commons:commons-lang3:3.14.0 in the liquibaseRuntime
classpath.
Preparing the 3.0.0 release
Preparing the 3.0.0 release
This release finally supports the latest versions of Liquibase, but NO LONGER SUPPORTS VERSIONS OLDER THAN 4.24.
Liquibase now gets the list of tasks to create from Liquibase itself, which means it needs to a
classpath dependency in the buildscript block. This is in addition to being a
liquibaseRuntime dependency as before.
The plugin no longer fixes liquibase arguments. What you give it is what will be passed to Liquibase. This makes the plugin more flexible as Liquibase changes, but will break if you are still using old arguments. You will need to fix the following, if you are still using them.
| old name | new name |
|---|---|
| changeLogFile | changelogFile |
| changeLogParameters | changelogParameters |
| databaseChangeLogLockTableName | databaseChangelogLockTableName |
| databaseChangeLogTableName | databaseChangelogTableName |
| liquibaseHubApiKey | hubApiKey |
| liquibaseHubUrl | hubUrl |
| liquibaseProLicenseKey | proLicenseKey |
The most important change is changeLogFile, which is now changelogFile.
Commands in newer versions of Liquibase no longer have "values" at the end. All options are
now passed in as regular arguments. This both simplifies the plugin, and makes it more flexible.
The liquibasecommandValue and liquibaseExtraArguments Gradle properties have been removed,
and you can supply the value of any valid Liquibase argument by setting a matching Gradle
property, prefixed with liquibase. for example to run the "tag" task, you can now run
gradlew tag -PliquibaseTag=myTag. This also works to override values given in an activity
block.
Changelog Parameters can also be supplied this way, but because Gradle only lets you specify a
property once, all parameters need to be in the same property. For example,
-PliquibaseChangelogParameters=parm1=value1,param2=value2, etc. This plugin will merge the
parameters given on the command line with the ones in an activity block.
The executeSqlFile command has been removed. Use the executeSql command with a sqlFfile
argument instead.
Liquibase's arguments can have aliases. If you specify both an argument and an alias, you're on your own.
The plugin will ignore arguments that Liquibase doesn't recognize. This is done for two reasons:
activity block are meant to be defaults. Not all commands support all
arguments, and it is not an error to skip the ones that don't apply to the command you are
running at the moment.liquibase, but not
all properties that start with liquibase are meant to be command arguments. For example,
you could use a liquibaseVersion property to configure Gradle. This property is not meant to
be used by Liquibase. By default, the plugin will ignore them silently, but running Gradle with
the --debug flag will enable logging that shows what properties are being ignored.Added support for the label-filter, labels, adn contexts command arguments to the markNextChangeSetRan and markNextChangeSetRanSql tasks, with thanks
markNextChangeSetRan and markNextChangeSetRanSql tasks, with thanks to @TylorjgReleasing version 2.2.1
Releasing version 2.2.1
author argument of the diffChangeLog and generateChangeLog commands
with thanks to @EggOxygen.Fixed publishing to work with the latest version of the publish-plugin
Fixed publishing to work with the latest version of the publish-plugin
Removed the old liquibase id from the plugin. The plugin must be applied with its new standard
id of org.liquibase.gradle.
Changed the way Liquibase tasks are created to line up with the newer Liquibase 4.4+ commands.
Changed the way Liquibase commands are run. The plugin now sends the correct Liquibase 4.4+
commands when it detects a newer Liquibase version on the classpath. In other words, it will
send drop-all for Liquibase 4.4+ instead of the legacy dropAll command.
Added the liquibaseOutputFile property so users can specify output files at runtime.
Added support for Gradle 8, with thanks to Peter Trifanov (@petertrr), dropped support for Gradle prior to 6.4. Fixes #91
Fixed the way we set the JVM arguments, with thanks to @dthompson-galileo.
Added a liquibaseExtraArgs property to override and supplement the arguments in an activity
block. Fixes #106.
Updated the version of Gradle used to build the project.
Release 2.2.0 has some important and potentially breaking changes.
Gradle 8 is supported, versions prior to 6.4 are no longer supported.
The older plugin id is no longer supported. To apply this plugin now, you must use
org.liquibase.gradle.
The plugin creates tasks that line up with the newer Liquibase 4.4+ commands. To create tasks
that match the older pre 4.4 commands, to support backwards compatibility in CI/CD pipelines for
example, simply add -PliquibaseCreateLegacyTasks to the gradle command. This can be done
regardless of the version of Liquibase being used. This support will be removed in the future.
It is helpful to keep in mind that while it is convenient for the task to match the Liquibase
commands, it is not necessary, so Liquibase 4.4 tasks can still be used with older versions of
Liquibase, the plugin will translate commands and arguments automatically.
There is a new executeSqlFile task for executing SQL from a file. The executeSql task now
only executes the SQL given in the liquibaseCommandValue property, and executeSqlFile executes
the SQL given in the filename specified by the liquibaseCommandValue property.
The plugin now sends the newer kebab case commands to Liquibase when it detects newer versions in
of Liquibase in the classpath. For example, it uses drop-all when it detects version 4.4+
instead of the legacy dropAll command that it sends to older versions of Liquibase.
An output file can be specified on the command line, for tasks that use one, with the
-PliquibaseOutputFile=someFile property. This will override the outputFile specified in the
activity block of your build.gradle file.
There is a new -PliquibaseExtraArguments property that can be used to override the arguments
that the plugin sends to Liquibase.
Fixed the code that auto-detects the version if liquibase in use. Fi…
Fixed the code that auto-detects the version if liquibase in use. Fi…
Fixed the Code that detects the version of liquibase in use at the time the liquibase tasks run.
Removed bintray from the build
Removed bintray from the build
The plugin will now throw an exception when there are no activities defined, which would happen if users forget to configure the plugin. Fixes #30
The plugin now uses Gradle's task configuration avoidance API. Fixes #87.
The plugin now supports Liquibase 4.4.x and 4.5.x. Fixes #89 and #92, though there is some custom configuration required.
The plugin auto-detects which version of Liquibase is being used, and chooses the main class accordingly.
Tasks ending with "SQL" now end in "Sql" to make the plugin more future-proof when the day comes that Liquibase stops supporting camel case commands in favor of kebab case.
Release 2.1.0 adds support for Liquibase 4.4.0 and 4.5.0. Liquibase 4.4.0 made extensive changes to
the way it processes command line arguments. Liquibase now uses the picocli library to parse
options, but for some reason that library isn't a transitive dependency of Liquibase itself, so if
you want to use this plugin with Liquibase 4.4.0+, you'll have to add the
liquibaseRuntime 'info.picocli:picocli:4.6.1' dependency to your build.gradle file.
Liquibase now has 2 "Main" classes and this plugin chooses the best one based on the version of Liquibase it detects. You can still set a mainClassName, in the liquibase block of your build.gradle file, but it will most likely fail in Liquibase 4.4+.
There is also a subtle change in the way "SQL" tasks get created. Tasks that ended with "SQL" now
end with "Sql". For example updateSQL is now updateSql. Since neither Gradle nor Liquibase
seems to pay too much attention to case, this should not cause any breaking changes for now, but as
Liquibase itself transitions from camelCase commands to kebab case commands, this may become
important in the future, and this change will make it easier to pass the right thing to Liquibase if
and when Liquibase ever stops supporting camel case.
Updated the documentation for the 2.0.4 release
Updated the documentation for the 2.0.4 release
Added a jvmArgs property to the extension object to fix an issue when debugging in Idea. This
fixes #72.
Re-added the Groovy dependency so that the OutputEnablingLiquibaseRunner works (Issue #74)
Updated the copyrights and did the 2.0.3 release
Updated the copyrights and did the 2.0.3 release
Fixed a problem caused by changes in Gradle 6.4 (Issue #70), with thanks to Patrick Haun (@bomgar).
Fixed a deprecation warning that started showing up in Gradle 6.0.
Fixed the way the plugin handles System properties. Liquibase will now inherit System properties from the parent JVM when it runs, so you can now defi
Fixed the way the plugin handles System properties. Liquibase will now inherit System properties from the parent JVM when it runs, so you can now define System properties when you invoke Gradle, or in your build.gradle file, and Liquibase will use them. This fixes a problem with overriding the change log table that Liquibase uses.
Fixed a bug that was preventing some command arguments from being processed correctly by Liquibase. Specifically, I improved the list of arguments that need to come after the command (Issue #64).
Updated the Gradle Wrapper to use Gradle 6.
Updated the version of Groovy to 2.4.12 to remove the CVE-2016-6814 vulnerability
The plugin no longer has a transitive dependency on the Liquibase Groovy DSL. THIS IS A BREAKING CHANGE! The Groovy DSL is what brought in Liquibase i…
liquibaseRuntime dependencies. This resolves Issue #11, Issue #29, and Issue #36. Thank you to
Jasper de Vries (@litpho) for his contribution to this release.fixed support for the excludeObjects/includeObjects options with thanks to @manuelsanchezortiz (Issue #23).
Updated the plugin to use the correct, non-snapshot release of the Groovy DSL (Issue #22).
Updated the plugin to use the latest Groovy DSL bug fixes
Updated the plugin to use the latest Groovy DSL bug fixes
Worked around a Liquibase bug that was causing problems with the status command (Issue #3).
Updated the DSL to fix a customChange issue.
Updated the DSL to support most of Liquibase 3.4.2 (Issue #4 and Issue #6)
Added support for Liquibase 3.3.5
Added support for Liquibase 3.3.5
Fixed the task descriptions to correctly identify the property that is used to pass values to commands (Issue #2)
Refactored the project to fit into the Liquibase organization.
Your coding agent can read these notes before it upgrades. Set up the MCP server →