Skip to content

πŸš€ Gradle Setup ​

The bpmn-to-code Gradle plugin generates type-safe Process API files from your BPMN models as part of your Gradle build. It's available on the Gradle Plugin Portal and takes just a few minutes to set up.

1. Apply the plugin ​

kotlin
plugins {
    id("io.github.emaarco.bpmn-to-code-gradle") version "0.0.19"
}
groovy
plugins {
    id 'io.github.emaarco.bpmn-to-code-gradle' version '0.0.19'
}

Make sure the Gradle Plugin Portal is in your settings.gradle.kts:

kotlin
pluginManagement {
    repositories {
        gradlePluginPortal()
    }
}
groovy
pluginManagement {
    repositories {
        gradlePluginPortal()
    }
}

2. Configure the generation task ​

kotlin
import io.github.emaarco.bpmn.adapter.GenerateBpmnModelsTask
import io.github.emaarco.bpmn.domain.shared.OutputLanguage
import io.github.emaarco.bpmn.domain.shared.ProcessEngine

tasks.named("generateBpmnModelApi", GenerateBpmnModelsTask::class) {
    baseDir = projectDir.toString()
    filePattern = "src/main/resources/**/*.bpmn"
    outputFolderPath = "$projectDir/src/main/kotlin"
    packagePath = "com.example.process"
    outputLanguage = OutputLanguage.KOTLIN
    processEngine = ProcessEngine.ZEEBE
    useVersioning = false
}
groovy
import io.github.emaarco.bpmn.adapter.GenerateBpmnModelsTask
import io.github.emaarco.bpmn.domain.shared.OutputLanguage
import io.github.emaarco.bpmn.domain.shared.ProcessEngine

tasks.named("generateBpmnModelApi", GenerateBpmnModelsTask) {
    baseDir = projectDir.toString()
    filePattern = "src/main/resources/**/*.bpmn"
    outputFolderPath = "$projectDir/src/main/kotlin"
    packagePath = "com.example.process"
    outputLanguage = OutputLanguage.KOTLIN
    processEngine = ProcessEngine.ZEEBE
    useVersioning = false
}

See Configuration for all available parameters.

3. Generate the API ​

bash
./gradlew generateBpmnModelApi

The generated Process API file(s) will appear in your configured output folder.

Automated setup with AI Skills ​

Using Claude Code? The setup-bpmn-to-code-gradle skill can configure the plugin for you automatically β€” it detects your project structure, finds your BPMN files, and adds the right configuration.

After setup, use the migrate-to-bpmn-to-code-apis skill to replace hardcoded BPMN strings across your codebase with references to the generated Process API.

bash
npx skills add https://github.com/emaarco/bpmn-to-code/tree/main/.claude/skills/setup-bpmn-to-code-gradle
npx skills add https://github.com/emaarco/bpmn-to-code/tree/main/.claude/skills/migrate-to-bpmn-to-code-apis

See AI Skills for all available skills.

Advanced configuration ​

Need multiple engines, separate packages per domain, or file filtering? See Gradle Advanced Configuration.