Bill of materials to make sure a consistent set of versions is used for Dropwizard modules
npx @tessl/cli install tessl/maven-io-dropwizard--dropwizard-bom@4.0.0Dropwizard BOM (Bill of Materials) is a Maven POM artifact that provides centralized dependency management for all Dropwizard framework modules. It ensures consistent versioning across the entire Dropwizard ecosystem by managing versions of all framework components, eliminating version conflicts and simplifying dependency declarations in consuming projects.
dependencyManagement sectionImport the BOM in your Maven POM's dependencyManagement section:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-bom</artifactId>
<version>4.0.14</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>After importing the BOM, declare dependencies without version numbers:
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-auth</artifactId>
</dependency>
</dependencies><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-dropwizard-app</artifactId>
<version>1.0.0</version>
<!-- Import Dropwizard BOM -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-bom</artifactId>
<version>4.0.14</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Declare dependencies without versions -->
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jersey</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jetty</artifactId>
</dependency>
</dependencies>
</project>Core Dropwizard framework modules for application lifecycle and configuration.
<!-- Core framework classes and application lifecycle -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
</dependency>
<!-- Configuration management and YAML parsing -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-configuration</artifactId>
</dependency>
<!-- Application lifecycle management -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-lifecycle</artifactId>
</dependency>
<!-- Common utilities and helper classes -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-util</artifactId>
</dependency>
<!-- Bean validation integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-validation</artifactId>
</dependency>Web server and HTTP-related functionality including JAX-RS and servlet support.
<!-- JAX-RS integration with Jersey -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jersey</artifactId>
</dependency>
<!-- Jetty server integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jetty</artifactId>
</dependency>
<!-- Common servlet implementations -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-servlets</artifactId>
</dependency>
<!-- Static asset serving capability -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-assets</artifactId>
</dependency>
<!-- HTML form processing support -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-forms</artifactId>
</dependency>
<!-- HTTP/2 protocol support -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-http2</artifactId>
</dependency>
<!-- HTTP request logging functionality -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-request-logging</artifactId>
</dependency>Authentication and authorization framework for securing applications.
<!-- Authentication and authorization framework -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-auth</artifactId>
</dependency>Database connectivity, ORM integration, and data migration tools.
<!-- Database connection pool management -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-db</artifactId>
</dependency>
<!-- Hibernate ORM integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-hibernate</artifactId>
</dependency>
<!-- JDBI 3 database access integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jdbi3</artifactId>
</dependency>
<!-- Database migration support via Liquibase -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-migrations</artifactId>
</dependency>JSON serialization and data format handling.
<!-- Jackson JSON serialization integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-jackson</artifactId>
</dependency>Metrics collection, health checks, and monitoring infrastructure.
<!-- Metrics collection and reporting -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-metrics</artifactId>
</dependency>
<!-- Graphite metrics reporting -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-metrics-graphite</artifactId>
</dependency>
<!-- Health check framework -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-health</artifactId>
</dependency>Logging configuration, management, and structured logging support.
<!-- Logging configuration and management -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-logging</artifactId>
</dependency>
<!-- Structured JSON logging support -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-json-logging</artifactId>
</dependency>HTTP client functionality with metrics and instrumentation.
<!-- HTTP client with metrics and instrumentation -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-client</artifactId>
</dependency>Template rendering engines and view handling.
<!-- View rendering framework -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-views</artifactId>
</dependency>
<!-- FreeMarker template engine integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-views-freemarker</artifactId>
</dependency>
<!-- Mustache template engine integration -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-views-mustache</artifactId>
</dependency>Testing utilities and support classes for Dropwizard applications.
<!-- Testing utilities and support classes -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-testing</artifactId>
<scope>test</scope>
</dependency>Platform-specific integrations and socket support.
<!-- Unix domain socket support -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-unix-socket</artifactId>
</dependency>The BOM manages versions for all 29 Dropwizard modules:
| Module | Purpose | Category |
|---|---|---|
| dropwizard-core | Core framework and application lifecycle | Core |
| dropwizard-configuration | Configuration management and YAML parsing | Core |
| dropwizard-lifecycle | Application lifecycle management | Core |
| dropwizard-util | Common utilities and helper classes | Core |
| dropwizard-validation | Bean validation integration | Core |
| dropwizard-jersey | JAX-RS integration with Jersey | Web/HTTP |
| dropwizard-jetty | Jetty server integration | Web/HTTP |
| dropwizard-servlets | Common servlet implementations | Web/HTTP |
| dropwizard-assets | Static asset serving | Web/HTTP |
| dropwizard-forms | HTML form processing support | Web/HTTP |
| dropwizard-http2 | HTTP/2 protocol support | Web/HTTP |
| dropwizard-request-logging | HTTP request logging | Web/HTTP |
| dropwizard-auth | Authentication and authorization | Security |
| dropwizard-db | Database connection pool management | Data Access |
| dropwizard-hibernate | Hibernate ORM integration | Data Access |
| dropwizard-jdbi3 | JDBI 3 database access | Data Access |
| dropwizard-migrations | Database migration via Liquibase | Data Access |
| dropwizard-jackson | Jackson JSON serialization | Serialization |
| dropwizard-metrics | Metrics collection and reporting | Monitoring |
| dropwizard-metrics-graphite | Graphite metrics reporting | Monitoring |
| dropwizard-health | Health check framework | Monitoring |
| dropwizard-logging | Logging configuration and management | Logging |
| dropwizard-json-logging | Structured JSON logging | Logging |
| dropwizard-client | HTTP client with instrumentation | Client |
| dropwizard-views | View rendering framework | Templates |
| dropwizard-views-freemarker | FreeMarker template engine | Templates |
| dropwizard-views-mustache | Mustache template engine | Templates |
| dropwizard-testing | Testing utilities and support | Testing |
| dropwizard-unix-socket | Unix domain socket support | Platform |
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-bom</artifactId>
<version>4.0.14</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Core framework -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
</dependency>
<!-- Database access -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-hibernate</artifactId>
</dependency>
<!-- Authentication -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-auth</artifactId>
</dependency>
<!-- Testing support -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-testing</artifactId>
<scope>test</scope>
</dependency>
</dependencies><dependencies>
<!-- Minimal microservice stack -->
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-client</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-metrics</artifactId>
</dependency>
</dependencies>