org.liquibase:liquibase-gradle-plugin
3.1.0
#1474 most downloaded on Maven Central
liquibase/liquibase-gradle-plugin
What this package is like to depend on
Last release 8 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
1 release in the last 12 months
see the full history below
Release timeline
21 releases · May 2015 to Dec 2025Releases
latest 21-
3.1.006 Dec 2025Release notes
Open source →-
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
Release notes
Open source →- This release adds support for Gradle 9, and it works with the Gradle configuration cache.
-
-
3.0.202 Mar 2025Release notes
Open source →-
add
--integration-name parameterto 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.
-
-
3.0.114 Sep 2024Release notes
Open source →-
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.0in theliquibaseRuntimeclasspath.
Release notes
Open source →- This release fixes a bug that was causing Liquibase to be called without any arguments.
-
-
3.0.004 Aug 2024Release notes
Open source →- The Liquibase Groovy Plugin now supports Liquibase 4.24+. THIS IS A BREAKING CHANGE!. This plugin is known to be broken on versions prior to 4.24. It now uses Liquibase's CommandScope and LiquibaseConfiguration apis to discover the supported tasks and their arguments.
Release notes
Open source →-
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
buildscriptblock. This is in addition to being aliquibaseRuntimedependency 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 nowchangelogFile. -
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
liquibasecommandValueandliquibaseExtraArgumentsGradle properties have been removed, and you can supply the value of any valid Liquibase argument by setting a matching Gradle property, prefixed withliquibase. for example to run the "tag" task, you can now rungradlew tag -PliquibaseTag=myTag. This also works to override values given in anactivityblock.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
executeSqlFilecommand has been removed. Use theexecuteSqlcommand with asqlFfileargument 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:
- Arguments in an
activityblock 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. - Arguments specified as properties on the Gradle command line start with
liquibase, but not all properties that start withliquibaseare meant to be command arguments. For example, you could use aliquibaseVersionproperty 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--debugflag will enable logging that shows what properties are being ignored.
- Arguments in an
-
2.2.227 Apr 2024Release notes
Open source →- Added support for the label-filter, labels, adn contexts command arguments to the
markNextChangeSetRanandmarkNextChangeSetRanSqltasks, with thanks to @Tylorjg
- Added support for the label-filter, labels, adn contexts command arguments to the
-
2.2.119 Nov 2023Release notes
Open source →- Added support for the
authorargument of thediffChangeLogandgenerateChangeLogcommands with thanks to @EggOxygen.
- Added support for the
-
2.2.011 Mar 2023Release notes
Open source →-
Removed the old
liquibaseid from the plugin. The plugin must be applied with its new standard id oforg.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-allfor Liquibase 4.4+ instead of the legacydropAllcommand. -
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
liquibaseExtraArgsproperty to override and supplement the arguments in an activity block. Fixes #106. -
Updated the version of Gradle used to build the project.
Release notes
Open source →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
-PliquibaseCreateLegacyTasksto 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
executeSqlFiletask for executing SQL from a file. TheexecuteSqltask now only executes the SQL given in theliquibaseCommandValueproperty, andexecuteSqlFileexecutes the SQL given in the filename specified by theliquibaseCommandValueproperty. -
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-allwhen it detects version 4.4+ instead of the legacydropAllcommand 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=someFileproperty. This will override theoutputFilespecified in theactivityblock of your build.gradle file. -
There is a new
-PliquibaseExtraArgumentsproperty that can be used to override the arguments that the plugin sends to Liquibase.
-
-
2.1.121 Dec 2021Release notes
Open source →Fixed the Code that detects the version of liquibase in use at the time the liquibase tasks run.
-
2.1.013 Nov 2021Release notes
Open source →-
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 notes
Open source →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
updateSQLis nowupdateSql. 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. -
-
2.0.407 Jun 2020Release notes
Open source →-
Added a
jvmArgsproperty 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)
-
-
2.0.324 May 2020Release notes
Open source →-
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.
-
-
2.0.224 Nov 2019Release notes
Open source →-
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.
-
-
2.0.103 Sep 2018Release notes
Open source →- Updated the version of Groovy to 2.4.12 to remove the CVE-2016-6814 vulnerability
-
2.0.014 Jul 2018Release notes
Open source →- 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 itself. It is now up
to you to make sure the Groovy DSL and Liquibase itself are on the classpath via
liquibaseRuntimedependencies. This resolves Issue #11, Issue #29, and Issue #36. Thank you to Jasper de Vries (@litpho) for his contribution to this release.
- 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 itself. It is now up
to you to make sure the Groovy DSL and Liquibase itself are on the classpath via
-
1.2.405 Mar 2017Release notes
Open source →- fixed support for the excludeObjects/includeObjects options with thanks to @manuelsanchezortiz (Issue #23).
-
1.2.325 Feb 2017Release notes
Open source →- Updated the plugin to use the correct, non-snapshot release of the Groovy DSL (Issue #22).
-
1.2.224 Feb 2017Release notes
Open source →-
Updated the plugin to use the latest Groovy DSL bug fixes
-
Worked around a Liquibase bug that was causing problems with the
statuscommand (Issue #3).
-
-
1.2.127 Dec 2015 -
1.2.027 Nov 2015Release notes
Open source →- Updated the DSL to support most of Liquibase 3.4.2 (Issue #4 and Issue #6)
-
1.1.104 Aug 2015Release notes
Open source →-
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)
-
-
1.1.016 May 2015