Dropwizard guice integration

February 10, 2026 · View on GitHub

License CI Appveyor build status codecov

DOCUMENTATION: http://xvik.github.io/dropwizard-guicey/

Support: discussions | gitter chat

About

Dropwizard 5.0.1 guice 7.0.0 integration.

Features:

  • Auto configuration from classpath scan and guice bindings.
  • Yaml config values bindings by path or unique sub objects.
  • Advanced Web support
  • Dropwizard style console reporting: detected (and installed) extensions are printed to console to remove uncertainty
  • Test support: custom junit and spock extensions
  • Advanced test abilities to disable or override application logic
  • Developer friendly:
    • core integrations may be replaced (to better fit needs)
    • rich api for developing custom integrations, and hooking into lifecycle)
    • out of the box support for plug-n-play plugins (auto discoverable)
    • diagnostic tools (reports), support for custom diagnostic tools

Sponsors

    Channel Talk

If guicey makes your life easier, you can support its development.

Supported versions

All active (not EOL) dropwizard versions supported.

DropwizardGuiceyReason
2.1.x5.xLast java 8 compatible version (EOL January 31 2024)
3.x6.xChanged core dropwizard packages - old 3rd paty bundles would be incompatible; Java 11 required (EOL January 31 2026)
4.x7.xJakarta namespace migration - 3rd party guice modules might be incompatible (EOL January 31 2026)
5.x8.xJava 17 required

Setup

Maven Central

Maven:

<dependency>
  <groupId>ru.vyarus</groupId>
  <artifactId>dropwizard-guicey</artifactId>
  <version>8.0.2</version>
</dependency>

Gradle:

implementation 'ru.vyarus:dropwizard-guicey:8.0.2'
DropwizardGuicey
5.08.0.2
4.07.3.2
3.06.4.2
2.15.10.2
2.05.5.0
1.34.2.3
1.1, 1.24.1.0
1.04.0.1
0.93.3.0
0.83.1.0
0.71.1.0

BOM

Use BOM for guice, dropwizard and guicey modules dependency management. BOM usage is highly recommended as it allows you to correctly update dropwizard dependencies.

Gradle:

dependencies {
    implementation platform('ru.vyarus.guicey:guicey-bom:8.0.2')
    // uncomment to override dropwizard and its dependencies versions    
    //implementation platform('io.dropwizard:dropwizard-dependencies:5.0.1')

    // no need to specify versions
    implementation 'ru.vyarus:dropwizard-guicey'
    implementation 'ru.vyarus.guicey:guicey-eventbus'
   
    implementation 'io.dropwizard:dropwizard-auth'
    implementation 'com.google.inject:guice-assistedinject'   
    
    testImplementation 'io.dropwizard:dropwizard-testing'
}

Maven:

<dependencyManagement>  
    <dependencies>
        <dependency>
            <groupId>ru.vyarus.guicey</groupId>
            <artifactId>guicey-bom</artifactId>
            <version>8.0.2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency> 
        <!-- uncomment to override dropwizard and its dependencies versions  
        <dependency>
            <groupId>io.dropwizard/groupId>
            <artifactId>dropwizard-dependencies</artifactId>
            <version>5.0.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency> -->                 
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>ru.vyarus</groupId>
        <artifactId>dropwizard-guicey</artifactId>
    </dependency>
</dependencies>

BOM includes:

BOMArtifact
Guicey modulesru.vyarus.guicey:guicey-[module]
Dropwizard BOMio.dropwizard:dropwizard-bom
Guice BOMcom.google.inject:guice-bom
HK2 bridgeorg.glassfish.hk2:guice-bridge
Spock-junit5ru.vyarus:spock-junit5

Sample project

You can also use sample gradle project for a new project bootstrap

Snapshots

Maven metadata URL

Snapshots published into Maven Central

Add maven snapshots repository:

repositories {
        mavenLocal()
        mavenCentral()
        maven {
            name = 'Central Portal Snapshots'
            url = 'https://central.sonatype.com/repository/maven-snapshots/'
            mavenContent {
                snapshotsOnly()
                includeGroupAndSubgroups('ru.vyarus')
            }
        }
    }

Use snapshot version:

dependencies {
    implementation 'ru.vyarus:dropwizard-guicey:8.0.2-SNAPSHOT'
}

To avoid caching you may use:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

Maven:

<repositories>
    <repository>
        <name>Central Portal Snapshots</name>
        <id>central-portal-snapshots</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Use shapshot version:

<dependency>
    <groupId>ru.vyarus</groupId>
    <artifactId>dropwizard-guicey</artifactId>
    <version>8.0.2-SNAPSHOT</version>
</dependency>

Usage

Read documentation

Might also like


java lib generator