Skip to main content

Gradle plugin

The Flamingock Gradle Plugin provides zero-boilerplate dependency configuration for your Gradle projects. Instead of manually managing multiple dependencies, you configure Flamingock with a simple DSL.

Why use the plugin?

Setting up Flamingock manually requires adding several dependencies:

// Without the plugin - multiple dependencies to manage
implementation(platform("io.flamingock:flamingock-community-bom:$version"))
implementation("io.flamingock:flamingock-community")
implementation("io.flamingock:flamingock-springboot-integration")
testImplementation("io.flamingock:flamingock-springboot-test-support")
annotationProcessor("io.flamingock:flamingock-processor:$version")

With the plugin, this becomes:

// With the plugin - simple DSL
plugins {
id("io.flamingock") version "[VERSION]"
}

flamingock {
community()
springboot()
}

The plugin automatically adds the correct dependencies, annotation processors, and BOMs based on your configuration.

Requirements

  • Gradle 7.4+
  • Java 8+

Quick start

Add the plugin to your build.gradle.kts:

plugins {
id("io.flamingock") version "[VERSION]"
}

flamingock {
community()
}

Configuration options

MethodDescription
community()Enables Community edition (adds BOM and core library)
springboot()Adds Spring Boot integration and test support
graalvm()Adds GraalVM native image support
mongock()Enables seamless migration from Mongock — imports audit log, detects legacy change units, and executes pending ones

What gets added

The plugin automatically adds dependencies based on your configuration:

Always added

annotationProcessor("io.flamingock:flamingock-processor:$version")

community()

implementation(platform("io.flamingock:flamingock-community-bom:$version"))
implementation("io.flamingock:flamingock-community")

springboot()

implementation("io.flamingock:flamingock-springboot-integration")
testImplementation("io.flamingock:flamingock-springboot-test-support")

graalvm()

implementation("io.flamingock:flamingock-graalvm")

mongock()

implementation("io.flamingock:mongock-support")
annotationProcessor("io.flamingock:mongock-support")

Examples

Basic standalone application

plugins {
java
id("io.flamingock") version "[VERSION]"
}

flamingock {
community()
}

dependencies {
// Your audit store
implementation("io.flamingock:flamingock-auditstore-mongodb-sync")

// Your drivers
implementation("org.mongodb:mongodb-driver-sync:5.0.0")
}

Spring Boot application

plugins {
java
id("org.springframework.boot") version "3.2.0"
id("io.spring.dependency-management") version "1.1.4"
id("io.flamingock") version "[VERSION]"
}

flamingock {
community()
springboot()
}

dependencies {
// Your audit store
implementation("io.flamingock:flamingock-auditstore-mongodb-sync")

// Your drivers
implementation("org.mongodb:mongodb-driver-sync:5.0.0")
}

Migrating from Mongock

plugins {
java
id("io.flamingock") version "[VERSION]"
}

flamingock {
community()
springboot()
mongock() // Adds Mongock migration support
}

With GraalVM native image

plugins {
java
id("org.graalvm.buildtools.native") version "0.9.28"
id("io.flamingock") version "[VERSION]"
}

flamingock {
community()
graalvm() // Adds GraalVM support
}

Alternative: Manual dependencies

If you prefer to manage dependencies manually, or if you're using Maven, see the dependency sections in each feature's documentation: