Camunda Team Blog

Use camunda bom for maven Dependency Management

Written by Daniel Meyer on , under Execution category.
Sometimes you need to include multiple camunda BPM maven dependencies in your project. The apache maven best practice  is to use a bom ("Bill of Materials") which ensures that you get the matching versions for multiple dependencies. For camunda bpm we prepared the camunda-bom to make sure you get the right versions for all camunda dependencies and our transitive dependencies.

First, import the camunda-bom in the dependencyManagement section of your maven pom:

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <type>pom</type>
        <scope>import</scope>
        <version>7.1.0-Final</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

Now you can reference multiple camunda dependencies without adding their <version> information:

  <dependencies>
  
    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-spring</artifactId>
    </dependency>
    
    ...

What's more: we also give you the versions for the the required dependencies of camunda engine. This way you will always get the version of mybatis, joda-time, java-uuid-generator that the current version of camunda-bpm was built and tested with:

<dependencies>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    </dependency>

    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.uuid</groupId>
      <artifactId>java-uuid-generator</artifactId>
    </dependency>
    
    ...

Note that most of our maven artifacts are pushed to maven central.