🚀 Maven Setup ​
The bpmn-to-code Maven plugin generates type-safe Process API files from your BPMN models during mvn compile. It's published on Maven Central and integrates into your existing build lifecycle with minimal configuration.
1. Add the plugin ​
Add the following to the <build> section of your pom.xml:
<build>
<plugins>
<plugin>
<groupId>io.github.emaarco</groupId>
<artifactId>bpmn-to-code-maven</artifactId>
<version>0.0.18</version>
<executions>
<execution>
<goals>
<goal>generate-bpmn-api</goal>
</goals>
</execution>
</executions>
<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>
<useVersioning>false</useVersioning>
</configuration>
</plugin>
</plugins>
</build>See Configuration for all available parameters.
2. Generate the API ​
mvn io.github.emaarco:bpmn-to-code-maven:generate-bpmn-apiOr, since the goal is bound to the generate-sources phase by default:
mvn compileThe 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-maven skill can configure the plugin for you automatically — it detects your project structure, finds your BPMN files, and adds the right pom.xml 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.
npx skills add https://github.com/emaarco/bpmn-to-code/tree/main/.claude/skills/setup-bpmn-to-code-maven
npx skills add https://github.com/emaarco/bpmn-to-code/tree/main/.claude/skills/migrate-to-bpmn-to-code-apisSee AI Skills for all available skills.
Advanced configuration ​
Need multiple engines, separate packages per domain, or file filtering? See Maven Advanced Configuration.