Maven Project Templates (Archetypes)
We provide several project templates for Maven, which are also called Archetypes. They enable a quickstart for developing production-ready process applications using Camunda 7. We incorporated best practices for different application types into the templates to help you start off with a solid base.
The Archetypes can be used to generate projects as detailed in the different usage sections. In case generating a project from an Archetype on your own is not feasible, we also provide a template GitHub repository for every Archetype.
Overview of Available Maven Archetypes
The following archetypes are currently provided. They are distributed via our Maven repository: https://artifacts.camunda.com/artifactory/camunda-bpm/
Archetype | Description |
---|---|
Camunda Cockpit Plugin | Plugin for Camunda Cockpit, contains REST-Backend, MyBatis database query, HTML and JavaScript frontend, Ant build script for one-click deployment |
Process Application (EJB, WAR) | Process application that uses a shared Camunda 7 engine in a Java EE Container, e.g., 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 Wildfly, Maven Plugins or Ant build script for one-click deployment in Eclipse |
Process Application (Servlet, WAR) | Process application that uses a shared Camunda 7 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 demo/demo to log in). |
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. |
Template repositories
We provide a template repository for every Camunda Archetype. Every repository contains a project generated from one specific template. You can find the whole list on GitHub.
With every new release of the Archetypes, we will update those repositories with a new version as well. This allows to investigate possible update paths from one Camunda version to another and also enables you to simply update your existing project by pulling in the latest changes.
In case you need more flexibility and customization for your project, you can generate a project on your own using one of the methods detailed in the next sections.
Usage in Eclipse IDE
Summary
- Add archetype catalog (Preferences -> Maven -> Archetypes -> Add Remote Catalog): https://artifacts.camunda.com/artifactory/camunda-bpm/
- Create Maven project from archetype (File -> New -> Project… -> Maven -> Maven Project)
Detailed Instructions
- 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.
Catalog File: https://artifacts.camunda.com/artifactory/camunda-bpm/
Description: Camunda 7
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:
Troubleshooting
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”.
- In the Maven Archetype Catalogs window, click on the “+” button, and in the opened “Add Archetype Catalog URL” modal window add the URL of the catalog file: https://artifacts.camunda.com/artifactory/camunda-bpm/archetype-catalog.xml.
- 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
org.camunda.bpm.archetype
entry.
Usage on Command Line
Interactive
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:
Full Automation
The following command completely automates the project generation and can be used in shell scripts or Ant builds:
mvn archetype:generate
-DinteractiveMode=false
-DarchetypeGroupId=org.camunda.bpm.archetype
-DarchetypeArtifactId=camunda-archetype-ejb-war
-DarchetypeVersion=7.10.0
-DgroupId=org.example.camunda.bpm
-DartifactId=camunda-bpm-ejb-project
-Dversion=0.0.1-SNAPSHOT
-Dpackage=org.example.camunda.bpm.ejb
Source Code and Customization
You can also customize the project templates for your own technology stack. Just fork them on GitHub!