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
| Method | Description |
|---|---|
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:
- Quick start - Core Flamingock dependencies
- Spring Boot integration - Spring Boot dependencies
- Coming from Mongock - Mongock migration dependencies