---
title: "Dependency Management | OpenEPCIS Docs | OpenEPCIS - an open-core, GS1-compliant EPCIS implementation."
canonical_url: "https://openepcis.io/de/docs/dependency-management"
last_updated: "2026-06-28T23:25:28.416Z"
meta:
  author: "benelog GmbH & Co. KG"
  description: "Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules."
  keywords: "Maven BOM, OpenEPCIS, Dependency Management, Java Dependencies, POM, Software Dependencies, Version Control, EPCIS, Open Source Java, Build Management, Modular Software, Dependency Resolution, Java Libraries, Maven Project, Centralized Dependencies, Dependency Consistency"
  "og:description": "Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules."
  "og:title": "Dependency Management"
  "twitter:description": "Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules."
  "twitter:title": "Dependency Management"
---

</h2>Home

``

# **Dependency Management** Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules. [~~maven-bom~~](https://openepcis.io/de/tags/maven-bom)· [~~openepcis~~](https://openepcis.io/de/tags/openepcis)· [~~dependency-management~~](https://openepcis.io/de/tags/dependency-management)· [~~java-dependencies~~](https://openepcis.io/de/tags/java-dependencies)· [~~pom~~](https://openepcis.io/de/tags/pom)· [~~software-dependencies~~](https://openepcis.io/de/tags/software-dependencies)· [~~version-control~~](https://openepcis.io/de/tags/version-control)· [~~epcis~~](https://openepcis.io/de/tags/epcis)· [~~open-source-java~~](https://openepcis.io/de/tags/open-source-java)· [~~build-management~~](https://openepcis.io/de/tags/build-management)· [~~modular-software~~](https://openepcis.io/de/tags/modular-software)· [~~dependency-resolution~~](https://openepcis.io/de/tags/dependency-resolution)· [~~java-libraries~~](https://openepcis.io/de/tags/java-libraries)· [~~maven-project~~](https://openepcis.io/de/tags/maven-project)· [~~centralized-dependencies~~](https://openepcis.io/de/tags/centralized-dependencies)· [~~dependency-consistency~~](https://openepcis.io/de/tags/dependency-consistency)· 3 min read ## Quick links Please find below the links to the codes referenced on this documentation page: • EPCIS parent POM for dependency management application code : https://github.com/openepcis/openepcis-bom ## Introduction The OpenEPCIS-BOM project serves as a centralized Maven Bill of Materials (BOM) for all OpenEPCIS project. It simplifies dependency management across all OpenEPCIS modules by providing a consistent and versioned set of dependencies. This documentation aims to explain the purpose, benefits, and usage of this BOM, offering a guide for developers and users working with OpenEPCIS. ## What is a Maven BOM? A Maven Bill of Materials (BOM) is a special type of POM (Project Object Model) that is used to control the versions of dependencies used in a project and its sub-modules. It does not contain any build logic or source code but instead defines a list of dependencies with their respective versions.**Key characteristics of a Maven BOM:**- **Dependency Management:** It centralizes dependency version management, ensuring consistency across multiple modules. - **Version Control:** It allows for easy updates and maintenance of dependency versions. - **Simplified Dependency Declarations:** Child modules can declare dependencies without specifying versions, and simply inherit them from the BOM. - **Reduced Conflicts:** It minimizes the risk of dependency conflicts by enforcing consistent versions.**Benefits of using a BOM:**- **Maintainability:** Easier to update dependency versions across multiple modules. - **Consistency:** Ensures all modules use the same versions of dependencies. - **Improved Build Reliability:** Reduces the risk of unexpected dependency conflicts. ## OpenEPCIS-BOM The OpenEPCIS project utilizes a modular architecture, where individual modules rely on various dependencies. To ensure uniform dependency versions and management across the project, the OpenEPCIS-BOM project was created.**Functionality:**- The project defines a POM file that lists all dependencies required by various OpenEPCIS modules. - It specifies the versions of these dependencies, ensuring consistency across the project. - OpenEPCIS modules can import this BOM to inherit the dependency versions. - If new dependencies are introduced to OpenEPCIS modules, they are added to the OpenEPCIS-BOM with specified versions. ## Using the OpenEPCIS-BOM To use the OpenEPCIS-BOM in OpenEPCIS module, we need to import it into your module's POM file.**Steps:**1. **Import the BOM:**   - Add the following `**<parent>**` section to module's POM file.   - Replace `**${openepcis.version}**` with the desired version of the OpenEPCIS-BOM. This variable is typically defined in the parent pom.```
<parent>
    <groupId>io.openepcis</groupId>
    <artifactId>openepcis-bom</artifactId>
    <version>\`${openepcis.version}\`</version>
</parent>
```1. **Declare Dependencies:**   - In the `**<dependencies>**` section of your module's POM file, declare the dependencies you need without specifying versions.   - The versions will be inherited from the OpenEPCIS-BOM.```
<dependencies>
    <!-- Simple Logging Facade for Java (SLF4J) API -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>

    <!-- Java library for processing JSON data -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
</dependencies>
```**Example POM Snippet:**```
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>io.openepcis</groupId>
        <artifactId>openepcis-bom</artifactId>
        <version>\`${openepcis.version}\`</version>
    </parent>

    <artifactId>openepcis-module-name</artifactId>
    <name>openepcis-module-name</name>
    <packaging>pom</packaging>

    <dependencyManagement>
        <dependencies>
            <!-- Simple Logging Facade for Java (SLF4J) API -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </dependency>

            <!-- Java library for processing JSON data -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
```