Skip to content

⚙️ Configuration

All plugin parameters, available for both the Gradle and Maven plugins.

Parameters

ParameterTypeRequiredDefaultDescription
baseDirStringyesBase directory for resolving relative paths
filePatternStringyesGlob pattern to locate BPMN files (e.g. src/main/resources/**/*.bpmn)
outputFolderPathStringyesDirectory where generated code is written
packagePathStringyesPackage name for generated classes (e.g. com.example.process)
outputLanguageOutputLanguageyesKOTLIN or JAVA
processEngineProcessEngineyesZEEBE, CAMUNDA_7, or OPERATON

Process Engines

EngineValueDescription
Camunda 8 / ZeebeZEEBEUses zeebe: namespace extensions
Camunda 7CAMUNDA_7Uses camunda: namespace extensions
OperatonOPERATONUses operaton: namespace (Operaton's own XML namespace)

Operaton

Operaton is an open-source fork of Camunda 7. It uses the same patterns for I/O mappings and call activities, but with its own XML namespace (http://operaton.org/schema/1.0/bpmn). If your Operaton models still use camunda: namespace attributes, use CAMUNDA_7 instead.

Output Languages

LanguageValueGenerated Output
KotlinKOTLINobject with const val properties
JavaJAVAclass with public static final fields

INFO

Currently, the Gradle plugin, Maven plugin, and Web app all emit the same set of languages. Future language support may differ per module — additional languages will likely appear in the Web app first.

Examples

kotlin
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
}
xml
<configuration>
    <baseDir>${project.basedir}</baseDir>
    <filePattern>src/main/resources/*.bpmn</filePattern>
    <outputFolderPath>${project.basedir}/src/main/java</outputFolderPath>
    <packagePath>com.example.process</packagePath>
    <outputLanguage>KOTLIN</outputLanguage>
    <processEngine>ZEEBE</processEngine>
</configuration>