Maven Project Templates (Archetypes)
We provide several project templates for Maven, which are also called Archetypes. They enable a quickstart for developing process applications using the Camunda BPM platform.
Overview of Available Maven Archetypes
The following archetypes are currently provided. They are distributed via our Maven repository: https://app.camunda.com/nexus/service/rest/repository/browse/camunda-bpm/
|Process Application (EJB, WAR)||Process application that uses a shared Camunda BPM engine in a Java EE Container, e.g., JBoss Wildfly. Contains: Camunda EJB Client, Camunda CDI Integration, BPMN Process, Java Delegate as CDI bean, HTML5- & JSF-based start and task forms, configuration for JPA (Hibernate), JUnit Test with in-memory engine and visual process test coverage, Arquillian Test for JBoss AS7 & Wildfly, Maven Plugins or Ant build script for one-click deployment in Eclipse|
|Process Application (Servlet, WAR)||Process application that uses a shared Camunda BPM engine in a Servlet Container, e.g., Apache Tomcat. Contains: Servlet process application, BPMN Process, Java Delegate, HTML5-based start and task forms, JUnit Test with in-memory engine, Maven Plugins or Ant build script for one-click deployment in Eclipse|
|Camunda Spring Boot Application||Application that uses the Camunda Spring Boot Starter. Contains: Spring Boot Process Application, Camunda Webapps, BPMN Process, Java Delegate, HTML5-based start and task forms, JUnit Test with in-memory engine, Maven Plugins for packing as an executable application.|
|Camunda Spring Boot Application with Demo Users||Same as the Spring Boot Application archetype and additionally creates demo users and groups for easy start with the Camunda Webapps (use
|Process Engine Plugin||An example for a process engine plugin. Contains: Process engine plugin, BPMN Parse Listener that is registered via the plugin, Task Listener that is added to every user task, JUnit Test with in-memory engine.|
Usage in Eclipse IDE
- Add archetype catalog (Preferences -> Maven -> Archetypes -> Add Remote Catalog): https://app.camunda.com/nexus/content/repositories/camunda-bpm/
- Create Maven project from archetype (File -> New -> Project… -> Maven -> Maven Project)
- Go to Preferences -> Maven -> Archetypes -> Add Remote Catalog
Enter the following URL and description, click on Verify… to test the connection and if that worked click on OK to save the catalog.
Description: camunda BPM platform
Now you should be able to use the archetypes when creating a new Maven project in Eclipse:
- Go to File -> New -> Project… and select Maven -> Maven Project
- Select a location for the project or just keep the default setting.
- Select the archetype from the catalog that you created before.
- Specify Maven coordinates and Camunda version and finish the project creation.
The resulting project should look like this:
Sometimes the creation of the very first Maven project fails in Eclipse. If that happens to you, just try it again. Most of the times the second try works. If the problem persists, contact us.
Usage in IntelliJ IDEA
- On the “Welcome to IntelliJ IDEA” screen, click on “Configure” and select “Plugins” in the dropdown
- In the plugins dialog, click on “Browse repositories…”
- Search for the plugin “Maven Archetype Catalogs” and click on “Install”
- Restart IntelliJ IDEA
- On the “Welcome to IntelliJ IDEA” screen, click on “Configure” and select “Preferences” in the dropdown
- In the preferences window, navigate to: “Build, Execution, Deployment > Build Tools > Maven Archetype Catalogs”
- To create a Maven project from an archetype, click on the “Welcome to IntelliJ IDEA” screen on “Create New Project”
- In the new project dialog, click on the left side on “Maven”, check “Create from archetype” and select any
Usage on Command Line
Run the following command in a terminal to generate a project. Maven will allow you to select an archetype and ask you for all parameters needed to configure it:
mvn archetype:generate -Dfilter=org.camunda.bpm.archetype:
The following command completely automates the project generation and can be used in shell scripts or Ant builds:
Source Code and Customization
You can also customize the project templates for your own technology stack. Just fork them on GitHub!