CAS 5.3 : Gradle build failed with an exception

534 views
Skip to first unread message

Terki Adel

unread,
Apr 16, 2021, 4:29:28 AM4/16/21
to CAS Community

Hi,

I'm trying to build the version 5.3 of the CAS project on my local machine which i cloned from this url : https://github.com/apereo/cas/tree/5.3.x , But while running the cmd to build the project, i got always stuck on that error.

How should i get rid of that type of error while building with gradle ?

[$CAS_PROJECT_LOCATION] >./gradlew build --parallel          

.....
......

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':support:cas-server-support-logging-config-splunk:compileClasspath'.
> Could not resolve com.splunk.logging:splunk-library-javalogging:1.5.3.
  Required by:
      project :support:cas-server-support-logging-config-splunk
   > Could not resolve com.splunk.logging:splunk-library-javalogging:1.5.3.
      > Could not get resource 'https://repo.spring.io/plugins-release/com/splunk/logging/splunk-library-javalogging/1.5.3/splunk-library-javalogging-1.5.3.pom'.
         > Could not GET 'https://repo.spring.io/plugins-release/com/splunk/logging/splunk-library-javalogging/1.5.3/splunk-library-javalogging-1.5.3.pom'. Received status code 401 from server: Unauthorized

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 20s
160 actionable tasks: 42 executed, 118 up-to-date

Ray Bon

unread,
Apr 16, 2021, 12:02:45 PM4/16/21
to cas-...@apereo.org
It looks like there is a missing library. Did you run the build in debug mode as the output suggested?
You may have to add repos to the build.

You may find your time better spent in upgrading cas to a supported version. If your objective is to run cas, use the overlay, https://github.com/apereo/cas-overlay-template

Ray

On Fri, 2021-04-16 at 01:29 -0700, Terki Adel wrote:
Notice: This message was sent from outside the University of Victoria email system. Please be cautious with links and sensitive information.
-- 
Ray Bon
Programmer Analyst
Development Services, University Systems

I respectfully acknowledge that my place of work is located within the ancestral, traditional and unceded territory of the Songhees, Esquimalt and WSÁNEĆ Nations.

Terki Adel

unread,
Apr 20, 2021, 4:08:14 AM4/20/21
to CAS Community, Ray Bon
While running the build in debug mode, i have no more information than without using it, concerning the issue i'm facing, it's always with a "Received status code 401 from server: Unauthorized" that the build fails. 

I need to run this type of CAS in ordre to use some specific CAS classes, the repos are already added to my build, here is my gradle.build file  :


description = "Apereo Central Authentication Service $version"

defaultTasks "clean", "build"

ext {
    publishSnapshots = Boolean.getBoolean("publishSnapshots")
    publishReleases = Boolean.getBoolean("publishReleases")
    sonatypeUsername = System.getProperty("sonatypeUsername")
    sonatypePassword = System.getProperty("sonatypePassword")
    testCategoryType = System.getProperty("testCategoryType")
    forceBom = Boolean.getBoolean("forceBom")
    enableRemoteDebugging = Boolean.getBoolean("enableRemoteDebugging")
    continuousIntegrationBuild = Boolean.getBoolean("CI") || Boolean.getBoolean("TRAVIS") || Boolean.getBoolean("CONTINUOUS_INTEGRATION")

    publishingRelease = publishReleases && rootProject.sonatypeUsername != null && rootProject.sonatypePassword != null
    /*
    Open the Git repository in the current directory.
    Get commit id of HEAD.
     */
    git = org.ajoberstar.grgit.Grgit.open(dir: file('.').canonicalPath)
    def gitHead = git.head()
    currentRevision = gitHead.id
    currentAbbreviatedRevision = gitHead.abbreviatedId
}

def isArtifactSigningRequired = {
    return (publishReleases && sonatypeUsername != null && sonatypePassword != null)
}

/*
    See: https://github.com/tbroyer/gradle-errorprone-plugin/issues/56
    Do not use caching by default to work around issues with parallel builds.
    TODO May be removed with Java 9 and above.
 */
if (JavaVersion.VERSION_1_8.isJava8()) {
    def url = new URL("$projectUrl")
    new HttpURLConnection(url) {
        @Override
        void connect() throws IOException {
        }
        @Override
         void disconnect() {
        }
        @Override
        boolean usingProxy() {
            return false
        }
    }.setDefaultUseCaches(false)
}

apply from: rootProject.file("gradle/overrides.gradle")
apply from: rootProject.file("gradle/dependencies.gradle")
apply plugin: "com.github.kt3k.coveralls"
apply plugin: "com.github.ben-manes.versions"

buildscript {
    repositories {
        mavenLocal()
        jcenter()
        maven { url "https://maven.eveoh.nl/content/repositories/releases" }
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "https://repo.spring.io/plugins-release" }
    }

    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion"
        classpath "com.netflix.nebula:gradle-lint-plugin:9.3.2"
        classpath "io.franzbecker:gradle-lombok:1.14"
        classpath "com.github.ben-manes:gradle-versions-plugin:0.17.0"
        classpath "io.spring.gradle:propdeps-plugin:0.0.10.RELEASE"
        classpath "org.ajoberstar:grgit:2.2.0"
        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.14"
        classpath "com.moowork.gradle:gradle-node-plugin:1.2.0"
        classpath "org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.2"
        classpath "org.owasp:dependency-check-gradle:3.3.2"
    }
}

if (rootProject.continuousIntegrationBuild) {
    buildScan {
        licenseAgreementUrl = "https://gradle.com/terms-of-service"
        licenseAgree = "yes"
    }
}

allprojects {
    apply plugin: "idea"
    apply plugin: "eclipse"
    apply plugin: "maven"
    apply plugin: "signing"
    apply plugin: "jacoco"
    apply plugin: "groovy"

    if (!rootProject.publishSnapshots && !Boolean.getBoolean("skipGradleLint")) {
        apply plugin: "nebula.lint"
        gradleLint.rules = ["dependency-parentheses", "dependency-tuple"]
    }

    if (project.name == "cas-server-support-bom") {
        logger.info "Skipping pom generation for [$project.name], letting it create <dependency-management> entries on its own."
    } else {
        apply from: rootProject.file("gradle/maven.gradle")
    }

    signing {
        required = isArtifactSigningRequired
        sign configurations.archives
    }

    idea {
        module {
            downloadSources = false
            downloadJavadoc = false
            excludeDirs << file(".gradle")
            ["classes", "bin", "docs", "dependency-cache", "libs", "reports", "resources", "test-results", "tmp"].each {
                excludeDirs << file("$buildDir/$it")
            }
        }
    }

    signArchives.enabled = rootProject.publishingRelease || rootProject.publishSnapshots

    /*
        Do NOT publish test dependencies into the final POM.
    */
    conf2ScopeMappings.mappings.remove(configurations.findByName("testCompileOnly"))
    conf2ScopeMappings.mappings.remove(configurations.findByName("testRuntimeOnly"))

    repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
    }
}

subprojects {
    task allDependenciesInsight(type: DependencyInsightReportTask,
            description: "Produce insight information for all dependencies") {
        doLast {}
    }
    task allDependencies(type: DependencyReportTask,
            description: "Display a graph of all project dependencies") {
        doLast {}
    }
    apply plugin: "java-library"
    if (!Boolean.getBoolean("skipErrorProneCompiler")) {
        apply plugin: "net.ltgt.errorprone"
    }
    apply plugin: "checkstyle"
    apply plugin: "io.franzbecker.gradle-lombok"
    if (!Boolean.getBoolean("skipFindbugs")) {
        apply plugin: "findbugs"
    }
    apply plugin: "propdeps"
    apply plugin: "propdeps-maven"
    apply plugin: "propdeps-idea"
    apply plugin: "propdeps-eclipse"
    apply plugin: "org.owasp.dependencycheck"

    apply from: rootProject.file("gradle/tasks.gradle")
    apply from: rootProject.file("gradle/tests.gradle")

    ext.libraries = rootProject.ext.libraries

    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://build.shibboleth.net/nexus/content/repositories/releases" }
        maven { url "https://oss.sonatype.org/content/repositories/releases" }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
        maven { url "https://repo.spring.io/plugins-release/" }
        maven { url "https://dl.bintray.com/uniconiam/maven" }
        maven { url "https://jitpack.io" }
        jcenter()
    }

    tasks.withType(JavaCompile) {
        if (!Boolean.getBoolean("skipErrorProneCompiler")) {
            // The last argument to disable parameter names is a workaround for: https://github.com/google/error-prone/issues/780
            options.compilerArgs += ["-Xep:MissingOverride:OFF", "-Xep:ParameterName:OFF"]
        }
    }
    
    configurations {
        tests
    }

    configurations.all {
        resolutionStrategy {
            if (!Boolean.getBoolean("skipVersionConflict")) {
                failOnVersionConflict()
            }
            preferProjectModules()
            cacheDynamicVersionsFor 1, "days"
            cacheChangingModulesFor 1, "days"

            /**
             * Required for all JRadius modules
             */
            eachDependency { DependencyResolveDetails details ->
                if (details.requested.group == "gnu-getopt") {
                    details.useTarget group: "gnu.getopt", name: "java-getopt", version: details.requested.version
                }
            }
        }

        exclude(group: "ch.qos.logback", module: "logback-core")
        exclude(group: "ch.qos.logback", module: "logback-classic")
        exclude(group: "cglib", module: "cglib")
        exclude(group: "cglib", module: "cglib-full")
    }

    artifacts {
        tests testJar

        if (!rootProject.publishSnapshots) {
            archives sourcesJar
            archives javadocJar
            archives resourcesJar
            archives testJar
        }
    }

    sourceSets {
        main {
            java {
                srcDirs = ["${projectDir}/src/main/java", "${projectDir}/src/main/groovy"]

            }
            resources {
                srcDirs = ["${projectDir}/src/main/resources"]
            }
        }
        test {
            java {
                srcDirs = ["${projectDir}/src/test/java", "${projectDir}/src/test/groovy"]

            }
            resources {
                srcDirs = ["${projectDir}/src/test/resources"]
            }
        }
    }

    ext.buildDate = null
    ext.buildJarFile = new File(project.buildDir, "libs/${project.name}-${project.version}.jar")

    compileJava.options.compilerArgs << '-parameters'
    compileJava.options.fork = true
    if (Boolean.getBoolean("enableIncremental")) {
        compileJava.options.incremental = true
    }

    def currentTime = java.time.ZonedDateTime.now()
    compileJava.doLast {
        buildDate = currentTime
        jar.manifest {
            attributes("Implementation-Date": project.buildDate)
        }
    }

    tasks.jar.onlyIf {
        project.buildDate != null || !project.buildJarFile.exists()
    }


    lombok {
        version = "$lombokVersion"
    }

    jar {
        manifest {
            attributes("Implementation-Title": project.name,
                    "Implementation-Vendor": project.group,
                    "Created-By": project.group,
                    "Specification-Version": rootProject.currentRevision,
                    "Implementation-Version": project.version)
        }
    }

    checkstyle {
        configFile new File(rootDir, "style/checkstyle-rules.xml")
        configProperties = ["checkstyle.suppressions.file": new File(rootDir, "style/checkstyle-suppressions.xml")]
        ignoreFailures false
        showViolations true
        toolVersion "${checkstyleVersion}"
    }

    checkstyleTest {
        enabled = !Boolean.getBoolean("skipCheckstyle")
    }

    checkstyleMain {
        enabled = !Boolean.getBoolean("skipCheckstyle")
    }

    dependencyCheck {
        /*
         * Specifies if the build should be failed if a CVSS score equal
         * to or above a specified level is identified.
         */
        failBuildOnCVSS = 8
        skipTestGroups = true
        suppressionFile = file("$rootProject.projectDir/style/dependency-check-suppressions.xml")
        analyzers {
            assemblyEnabled = false
            swiftEnabled = false
            cocoapodsEnabled = false
            nspEnabled = false
            autoconfEnabled = false
            cmakeEnabled = false
            pathToMono = false
            nuspecEnabled = false
            rubygemsEnabled = false
            pyPackageEnabled = false
            pyDistributionEnabled = false
            nexusEnabled = false
            centralEnabled = false
        }
    }

    if (!Boolean.getBoolean("skipFindbugs")) {
        findbugs {
            toolVersion = "${findbugsVersion}"
            sourceSets = [sourceSets.main]
            ignoreFailures = false
            reportsDir = file("$project.buildDir/findbugsReports")
            effort = "max"
            reportLevel = "low"
            includeFilter = file("$rootProject.projectDir/style/findbugs-rules.xml")
            excludeFilter = file("$rootProject.projectDir/style/findbugs-excludes.xml")
        }

        findbugsMain {
            reports {
                xml.enabled = false
                html.enabled = true
            }
        }
    }

    dependencies {
        //optional libraries.springcomponentindexer

        implementation libraries.aspectj
        implementation libraries.validationapi

        api libraries.log4j
        api libraries.guava
        api libraries.commons
        api libraries.jodatime
        api libraries.inspektr
        api libraries.persondirectory
        api libraries.spring
        api libraries.jackson
        api libraries.httpclient
        api libraries.quartz
        api libraries.hibernate
        api libraries.springcloud
        api libraries.springboot

        provided libraries.javax

        if (!Boolean.getBoolean("skipFindbugs")) {
            findbugs libraries.findbugs
            findbugs configurations.findbugsPlugins.dependencies
            findbugsPlugins libraries.findbugscontrib
            findbugsPlugins libraries.findbugssec
        }

        if (!Boolean.getBoolean("skipErrorProneCompiler")) {
            errorprone "com.google.errorprone:error_prone_core:$errorProneVersion"
        }
        testImplementation libraries.tests

        compileOnly libraries.findbugsannotations
    }

    if (project.name != 'cas-server-core-api-test-category') {
        dependencies {
            testImplementation project(path: ':api:cas-server-core-api-test-category', configuration: "tests")
        }
    }
}

wrapper {
    gradleVersion = project.gradleVersion
}

task javadoc(type: Javadoc, description: "Aggregate all Javadocs into a single directory", overwrite: true) {
    source subprojects.collect { project -> project.sourceSets.main.allJava }
    destinationDir = new File(buildDir, "javadoc")
    classpath = files(subprojects.collect { project -> project.sourceSets.main.compileClasspath })
}

task aggregateJavadocsIntoJar(type: Jar, dependsOn: javadoc, description: "Aggregate all Javadocs into a single directory") {
    classifier = "javadoc"
    from javadoc
}

task rootSourcesJar(type: Jar, description: "Build JAR for the root CAS module") {
    baseName = "${project.archivesBaseName}"
    from rootProject.file("src")
}

task gradleHome(description: "Display GRADLE_HOME environment variable") {
    doFirst {
        println "\nexport GRADLE_HOME=" + gradle.gradleHomeDir
    }
}

artifacts {
    archives aggregateJavadocsIntoJar
    archives rootSourcesJar
}

def publishedProjects = subprojects.findAll { !it.path.contains(':docs') }

task jacocoMerge(type: JacocoMerge) {
    publishedProjects.each { subproject ->
        executionData subproject.tasks.withType(Test)
    }
    doFirst {
        executionData = files(executionData.findAll { it.exists() })
    }
}

task jacocoRootReport(type: JacocoReport, group: 'Coverage reports') {
    description = 'Generates an aggregate report from all subprojects'
    dependsOn publishedProjects.test
    dependsOn jacocoMerge
    
    additionalSourceDirs = files(publishedProjects.sourceSets.main.allSource.srcDirs)
    sourceDirectories = files(publishedProjects.sourceSets.main.allSource.srcDirs)
    classDirectories = files(files(subprojects.sourceSets.main.output).collect {
        fileTree(dir: it,
                include: '**/*.class',
                exclude: [
                        '**/**Configuration.class',
                        '**/shell/cli/**',
                        '**/shell/commands/**',
                        '**/**Configuration$**',
                        '**/**Controller**',
                        '**/**ConfigurationMetadataGenerator**',
                        '**/**Application.class',
                        '**/**Application$**',
                        '**/**WebflowConfigurer.class',
                        '**/**WebflowConfigurer$**',
                        '**/**Exception.class',
                        '**/**Banner.class',
                        '**/**Exception$**',
                        '**/**Properties.class',
                        '**/**Properties$**'
                ])
    })
    executionData jacocoMerge.destinationFile
    reports {
        html.enabled = false
        xml.enabled = true
    }
}

coveralls {
    sourceDirs = publishedProjects.sourceSets.main.allSource.srcDirs.flatten()
    jacocoReportPath = "${buildDir}/reports/jacoco/jacocoRootReport/jacocoRootReport.xml"
}

tasks.coveralls {
    group = "Coverage reports"
    description = "Uploads the aggregated coverage report to Coveralls"
    dependsOn jacocoRootReport
}

****************************************
AND my dependencies.gradle :


ext.libraries = [
        aspectj                 : [
                dependencies.create("org.aspectj:aspectjrt:$aspectjVersion") {
                    force = true
                },
                dependencies.create("org.aspectj:aspectjweaver:$aspectjVersion") {
                    force = true
                }
        ],
        semver                  : [
                dependencies.create("com.vdurmont:semver4j:$semverVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        apachesyncope           : [
                dependencies.create("org.apache.syncope.common:syncope-common-lib:$apacheSyncopeVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.cxf", module: "cxf-rt-transports-http")
                    exclude(group: "org.apache.cxf", module: "cxf-rt-frontend-jaxrs")
                    exclude(group: "org.apache.cxf", module: "cxf-core")
                    force = true
                }
        ],
        splunklogging           : [
                dependencies.create("com.splunk.logging:splunk-library-javalogging:$splunkLoggingVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        oshi                    : [
                dependencies.create("com.github.oshi:oshi-core:$oshiVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "net.java.dev.jna", module: "jna-platform")
                    force = true
                }
        ],
        swagger                 : [
                dependencies.create("io.swagger:swagger-annotations:$swaggerVersion") {
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                },
                dependencies.create("io.swagger:swagger-core:$swaggerVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                },
                dependencies.create("io.swagger:swagger-jaxrs:$swaggerVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                },
                dependencies.create("io.swagger:swagger-models:$swaggerVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                }
        ],
        swaggerfox              : [
                dependencies.create("io.springfox:springfox-swagger2:$swaggerSpringFoxVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "net.bytebuddy", module: "byte-buddy")
                    exclude(group: "io.swagger", module: "swagger-annotations")
                    exclude(group: "io.swagger", module: "swagger-core")
                    exclude(group: "io.swagger", module: "swagger-models")
                    exclude(group: "io.swagger", module: "swagger-jaxrs")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                }
        ],
        swaggerui               : [
                dependencies.create("io.springfox:springfox-swagger-ui:$swaggerSpringFoxVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "net.bytebuddy", module: "byte-buddy")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                }
        ],
        influxdb                : [
                dependencies.create("org.influxdb:influxdb-java:$influxDbVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.squareup.retrofit2", module: "retrofit")
                    exclude(group: "com.squareup.okio", module: "okio")
                    force = true
                },
                dependencies.create("com.squareup.retrofit2:retrofit:$retrofitVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.squareup.okhttp3", module: "okhttp")
                    exclude(group: "com.squareup.okio", module: "okio")
                    force = true
                },
                dependencies.create("com.squareup.okhttp3:okhttp:$okhttp3Version") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        bouncycastle            : [
                dependencies.create("org.bouncycastle:bcpkix-jdk15on:$bouncyCastleVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.cryptacular:cryptacular:$cryptacularVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.bouncycastle:bcprov-jdk15on:$bouncyCastleVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                }
        ],
        sentry                  : [
                dependencies.create("com.getsentry.raven:raven:$sentryRavenVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("com.getsentry.raven:raven-log4j2:$sentryRavenVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        apachefortress          : [
                dependencies.create("org.apache.directory.fortress:fortress-core:$apacheFortressVersion") {
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.sun.mail", module: "javax.mail")
                    exclude(group: "org.apache.httpcomponents", module: "httpcore")
                    exclude(group: "org.apache.directory.api", module: "api-all")
                    exclude(group: "commons-io", module: "commons-io")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.openldap", module: "accelerator")
                    exclude(group: "org.openldap", module: "accelerator-impl")
                    exclude(group: "org.openldap", module: "accelerator-api")
                    exclude(group: "commons-lang", module: "commons-lang")
                }
        ],
        cassandra               : [
                dependencies.create("com.datastax.cassandra:cassandra-driver-core:$cassandraDriverVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-annotation")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-jvm")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                }
        ],
        apachefediz             : [
                dependencies.create("org.apache.cxf.fediz:fediz-core:$apacheFedizVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.apache.santuario", module: "xmlsec")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-api")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-saml-impl")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.ow2.asm", module: "asm")
                    exclude(group: "org.apache.wss4j", module: "wss4j-ws-security-dom")
                    force = true
                },
        ],
        apachecxf               : [
                dependencies.create("org.apache.cxf:cxf-rt-transports-http:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-frontend-jaxws:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-ws-security:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.codehaus.woodstox", module: "woodstox-core-asl")
                    exclude(group: "org.apache.santuario", module: "xmlsec")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-api")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-saml-impl")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-rs-security-sso-saml:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.santuario", module: "xmlsec")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-api")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-saml-impl")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-ws-policy:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.codehaus.woodstox", module: "woodstox-core-asl")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-ws-addr:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.codehaus.woodstox", module: "woodstox-core-asl")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-rs-client:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-frontend-jaxrs:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.ow2.asm:asm:$ow2AsmVersion") {
                    transitive = false
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-rs-service-description:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf:cxf-rt-rs-extension-providers:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.apache.cxf.services.sts:cxf-services-sts-core:$apacheCxfVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.santuario", module: "xmlsec")
                    exclude(group: "org.codehaus.woodstox", module: "woodstox-core-asl")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-api")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xacml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.ow2.asm", module: "asm")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    force = true
                }
        ],
        casclient               : dependencies.create("org.jasig.cas.client:cas-client-core:$casClientVersion") {
            exclude(group: "javax.servlet", module: "servlet-api")
            exclude(group: "org.slf4j", module: "log4j-over-slf4j")
            exclude(group: "org.bouncycastle", module: "bcprov-jdk15")
            exclude(group: "org.slf4j", module: "slf4j-api")
            exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
            exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
            force = true
        },
        cassecurityfilter       : dependencies.create("org.apereo.cas:cas-server-security-filter:$casSecurityFilterVersion") {
            force = true
        },
        commons                 : [
                dependencies.create("commons-io:commons-io:$commonsIoVersion") {
                    force = true
                },
                dependencies.create("org.apache.commons:commons-text:$commonsTextVersion") {
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    force = true
                },
                dependencies.create("org.apache.commons:commons-pool2:$commonsPoolVersion") {
                    force = true
                },
                dependencies.create("commons-cli:commons-cli:$commonsCliVersion") {
                    force = true
                },
                dependencies.create("commons-beanutils:commons-beanutils:$commonsBeansVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    force = true
                },
                dependencies.create("commons-logging:commons-logging:$commonsLoggingVersion") {
                    force = true
                },
                dependencies.create("org.apache.commons:commons-configuration2:$commonsConfigVersion") {
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    force = true
                },
                dependencies.create("commons-validator:commons-validator:$commonsValidatorVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    exclude(group: "commons-digester", module: "commons-digester")
                    force = true
                },
                dependencies.create("commons-codec:commons-codec:$commonsCodecVersion") {
                    force = true
                },
                dependencies.create("commons-jexl:commons-jexl:$commonsJexlVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "junit", module: "junit")
                    force = true
                },
                dependencies.create("org.apache.commons:commons-lang3:$commonsLangVersion") {
                    force = true
                },
                dependencies.create("commons-lang:commons-lang:2.6") {
                    force = true
                },
                dependencies.create("org.jooq:jool:$joolVersion") {
                    force = true
                },
                dependencies.create("com.github.lalyos:jfiglet:$jfigletVersion") {
                    force = true
                },
                dependencies.create("commons-collections:commons-collections:$commonsCollections3Version") {
                    force = true
                },
                dependencies.create("org.apache.commons:commons-collections4:$commonsCollectionsVersion") {
                    force = true
                }
        ],
        ehcache                 : [
                dependencies.create("net.sf.ehcache:ehcache:$ehcacheVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.ehcache:jcache:$jcacheVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    force = true
                }
        ],
        findbugscontrib         : dependencies.create("com.mebigfatguy.fb-contrib:fb-contrib:$findbugsContribVersion"),
        findbugs                : dependencies.create("com.google.code.findbugs:findbugs:$findbugsVersion") {
            force = true
        },
        findbugssec             : dependencies.create("com.h3xstream.findsecbugs:findsecbugs-plugin:$findbugsSecVersion"),
        findbugsannotations     : dependencies.create("com.google.code.findbugs:annotations:$findbugsVersion"),
        groovy                  : [
                dependencies.create("org.codehaus.groovy:groovy-jsr223:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.codehaus.groovy:groovy-console:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.codehaus.groovy:groovy-groovysh:$groovyVersion") {
                    force = true
                },
                dependencies.create("org.codehaus.groovy:groovy-json:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.codehaus.groovy:groovy-xml:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.codehaus.groovy:groovy-sql:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                }
        ],
        grouper                 : dependencies.create("edu.internet2.middleware.grouper:grouperClient:$grouperVersion") {
            exclude(group: "org.slf4j", module: "slf4j-api")
            exclude(group: "junit", module: "junit")
            exclude(group: "joda-time", module: "joda-time")
            exclude(group: "commons-logging", module: "commons-logging")
            exclude(group: "xml-apis", module: "xml-apis")
            exclude(group: "xom", module: "xom")
            exclude(group: "commons-lang", module: "commons-lang")
            exclude(group: "javax.mail", module: "mail")
            exclude(group: "commons-beanutils", module: "commons-beanutils")
            exclude(group: "org.quartz-scheduler", module: "quartz")
            exclude(group: "log4j", module: "log4j")
            force = true
        },
        maxmind                 : [
                dependencies.create("com.maxmind.geoip2:geoip2:$maxmindVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    force = true
                }
        ],
        userinfogeocoding       : [
                dependencies.create("io.userinfo:userinfo-java:$userInfoVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.gson", module: "gson")
                }
        ],
        googlegeocoding         : [
                dependencies.create("com.google.maps:google-maps-services:$googleMapsGeoCodingVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.squareup.okio", module: "okio")
                    force = true
                }
        ],
        okhttp                  : [
                dependencies.create("com.squareup.okhttp:okhttp-urlconnection:$okioHttpVersion") {
                    exclude(group: "com.squareup.okio", module: "okio")
                    force = true
                },
                dependencies.create("com.squareup.okio:okio:$okioVersion") {
                    force = true
                }
        ],
        caffein                 : [
                dependencies.create("com.github.ben-manes.caffeine:caffeine:$caffeinVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("com.github.ben-manes.caffeine:guava:$caffeinVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        guava                   : [
                dependencies.create("com.google.guava:guava:$guavaVersion") {
                    force = true
                },
                dependencies.create("org.reflections:reflections:$reflectionsVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.javassist", module: "javassist")
                    force = true
                },
                dependencies.create("org.javassist:javassist:$javassistVersion") {
                    force = true
                },
                dependencies.create("org.springmodules:spring-modules-cache:0.8") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "ant", module: "ant")
                    exclude(group: "xstream", module: "xstream")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "xpp3", module: "xpp3_min")
                    exclude(group: "jcs", module: "jcs")
                    exclude(group: "jboss", module: "jboss-system")
                    exclude(group: "jboss", module: "javassist")
                    exclude(group: "jboss", module: "jboss-cache")
                    exclude(group: "jboss", module: "jboss-jmx")
                    exclude(group: "jboss", module: "jboss-minimal")
                    exclude(group: "jboss", module: "jboss-common")
                    exclude(group: "jgroups", module: "jgroups-all")
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "xjavadoc", module: "xjavadoc")
                    exclude(group: "jini", module: "xjavadoc")
                    exclude(group: "jini", module: "jsk-platform")
                    exclude(group: "jini", module: "boot")
                    exclude(group: "jini", module: "jsk-lib")
                    exclude(group: "jini", module: "mahalo")
                    exclude(group: "jini", module: "reggie")
                    exclude(group: "jini", module: "start")
                    exclude(group: "jini", module: "webster")
                    exclude(group: "ehcache", module: "ehcache")
                    exclude(group: "gigaspaces", module: "gigaspaces-ce")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.springframework", module: "spring")
                    force = true
                }
        ],
        hazelcast               : [
                dependencies.create("com.hazelcast:hazelcast:$hazelcastVersion") {
                    force = true
                }
        ],
        hazelcastaws            : [
                dependencies.create("com.hazelcast:hazelcast-aws:$hazelcastAwsVersion") {
                    force = true
                }
        ],
        hazelcastazure          : [
                dependencies.create("com.hazelcast:hazelcast-azure:$hazelcastAzureVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    force = true
                }
        ],
        jclouds                 : [
                dependencies.create("com.hazelcast:hazelcast-jclouds:$hazelcastJCloudsVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.jclouds:jclouds-compute:$jcloudsVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.jclouds:jclouds-allcompute:$jcloudsVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.jclouds.labs:google-compute-engine:$jcloudsGoogleEngineVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        jasypt                  : dependencies.create("org.jasypt:jasypt:$jasyptVersion") {
            exclude(group: "commons-cli", module: "commons-cli")
            exclude(group: "org.slf4j", module: "slf4j-api")
            force = true
        },
        hibernate               : [
                dependencies.create("org.hibernate:hibernate-core:$hibernateVersion") {
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.jboss.logging", module: "jboss-logging-annotations")
                    exclude(group: "org.javassist", module: "javassist")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "dom4j", module: "dom4j")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    force = true
                },
                dependencies.create("dom4j:dom4j:$dom4jVersion") {
                    exclude(group: "xml-apis", module: "xml-apis")
                    force = true
                },
                dependencies.create("org.hibernate:hibernate-hikaricp:$hibernateVersion") {
                    exclude(group: "org.javassist", module: "javassist")
                    exclude(group: "dom4j", module: "dom4j")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "com.zaxxer", module: "HikariCP")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    force = true
                },
                dependencies.create("org.hibernate:hibernate-entitymanager:$hibernateVersion") {
                    exclude(group: "org.javassist", module: "javassist")
                    exclude(group: "dom4j", module: "dom4j")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    force = true
                },
                dependencies.create("org.hibernate:hibernate-validator:$hibernateValidatorVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "com.fasterxml", module: "classmate")
                    force = true
                },
                dependencies.create("com.zaxxer:HikariCP:$hikariVersion") {
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("javax.el:javax.el-api:3.0.0") {
                    force = true
                },
                dependencies.create("org.glassfish.web:el-impl:2.2") {
                    exclude(group: "javax.el", module: "javax.el-api")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        httpclient              : [
                dependencies.create("org.apache.httpcomponents:httpclient:$httpclientVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.apache.httpcomponents", module: "httpcore")
                    force = true
                },
                dependencies.create("org.apache.httpcomponents:httpcore:$httpCoreVersion") {
                    force = true
                },
                dependencies.create("com.github.axet:wget:$axetWgetVersion") {
                    exclude(group: "com.thoughtworks.xstream", module: "xstream")
                    force = true
                }
        ],
        awsclouddirectory       : [
                dependencies.create("com.amazonaws:aws-java-sdk-clouddirectory:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        aws                     : [
                dependencies.create("com.amazonaws:aws-java-sdk-core:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        awssns                  : [
                dependencies.create("com.amazonaws:aws-java-sdk-sns:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        awss3                   : [
                dependencies.create("com.amazonaws:aws-java-sdk-s3:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        awssecretsmanager       : [
                dependencies.create("com.amazonaws:aws-java-sdk-secretsmanager:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        awscloudwatch           : [
                dependencies.create("com.amazonaws:aws-java-sdk-logs:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                },
                dependencies.create("com.amazonaws:aws-java-sdk-cloudwatch:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                }
        ],
        awsjavadynamodb         : [
                dependencies.create("com.amazonaws:aws-java-sdk-s3:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                },
                dependencies.create("com.amazonaws:aws-java-sdk-dynamodb:$amazonSdkVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                }
        ],
        apachevelocity          : [
                dependencies.create("org.apache.velocity:velocity-engine-core:$apacheVelocityVersion") {
                    force = true
                }
        ],
        googleauth              : [
                dependencies.create("com.warrenstrange:googleauth:$googleAuthVersion") {
                    transitive = false
                    force = true
                }
        ],
        zxingbarcode            : [
                dependencies.create("com.google.zxing:core:$googleZxingVersion") {
                    exclude(group: "com.google.zxing", module: "android-core")
                    exclude(group: "com.google.zxing", module: "android-integration")
                    exclude(group: "junit", module: "junit")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    force = true
                }
        ],

        shibidp                 : [
                dependencies.create("net.shibboleth.idp:idp-attribute-filter-api:$idpVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.liberty:idwsfconsumer:$idpLibertyIdwsConsumerVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-api")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-impl")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-attribute-api:$idpVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-attribute-resolver-api:$idpVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-core:$idpVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-profile-impl:$idpVersion") {
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-profile-spring:$idpVersion") {
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-impl")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-saml-api:$idpVersion") {
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.idp:idp-saml-impl:$idpVersion") {
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-impl")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-joda")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                },
                dependencies.create("net.shibboleth.utilities:java-support:$shibbolethUtilJavaSupport") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-json")
                    force = true
                }
        ],
        ignite                  : [
                dependencies.create("org.apache.ignite:ignite-core:$igniteVersion") {
                    force = true
                },
                dependencies.create("org.apache.ignite:ignite-log4j2:$igniteVersion") {
                    exclude(group: "log4j", module: "log4j")
                    force = true
                },
                dependencies.create("org.apache.ignite:ignite-spring:$igniteVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-jdbc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    force = true
                }
        ],
        infinispan              : [
                dependencies.create("org.infinispan:infinispan-cachestore-remote:$infinispanVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.iq80.leveldb", module: "leveldb-api")
                    exclude(group: "org.fusesource.leveldbjni", module: "leveldbjni")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.apache.httpcomponents", module: "httpcore")
                    exclude(group: "com.github.ben-manes.caffein", module: "caffein")
                    force = true
                },
                dependencies.create("org.infinispan:infinispan-commons:$infinispanVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.apache.httpcomponents", module: "httpcore")
                    exclude(group: "com.github.ben-manes.caffein", module: "caffein")
                    force = true
                },
                dependencies.create("org.infinispan:infinispan-core:$infinispanVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.apache.httpcomponents", module: "httpcore")
                    exclude(group: "com.github.ben-manes.caffein", module: "caffein")
                    force = true
                }
        ],
        inspektr                : [
                dependencies.create("org.apereo.inspektr:inspektr-audit:$inspektrVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "javax.validation", module: "validation-api")
                    exclude(group: "org.aspectj", module: "aspectjrt")
                    exclude(group: "org.hjson", module: "hjson")
                    force = true
                },
                dependencies.create("org.apereo.inspektr:inspektr-support-spring:$inspektrVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.hjson", module: "hjson")
                    exclude(group: "javax.validation", module: "validation-api")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-jdbc")
                    exclude(group: "org.aspectj", module: "aspectjrt")
                    exclude(group: "javax.validation", module: "validation-api")
                    force = true
                }
        ],
        javax                   : [
                dependencies.create("javax.servlet:javax.servlet-api:$javaxServletVersion") {
                    force = true
                }
        ],
        javaximpl               : [
                dependencies.create("javax.servlet:jstl:$javaxJstlVersion"),
                dependencies.create("javax.transaction:jta:$jtaVersion")
        ],
        thymeleafdialect        : [
                dependencies.create("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:$thymeleafDialectVersion") {
                    exclude(group: "org.javassist", module: "javassist")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.codehaus.groovy", module: "groovy")
                    exclude(group: "org.thymeleaf", module: "thymeleaf")
                    force = true
                }
        ],
        activemq                : [
                dependencies.create("org.springframework.boot:spring-boot-starter-activemq:$springBootVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.activemq", module: "activemq-client")
                    exclude(group: "org.fusesource.hawtbuf", module: "hawtbuf")
                    force = true
                },
                dependencies.create("org.apache.activemq:activemq-pool:$activemqPoolVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.activemq:activemq-broker:$activemqPoolVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        thymeleaf               : [
                dependencies.create("org.thymeleaf:thymeleaf-spring4:$thymeleafVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.javassist", module: "javassist")
                    exclude(group: "org.sourceforge.nekohtml", module: "nekohtml")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-starter-thymeleaf:$springBootVersion") {
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "nz.net.ultraq.thymeleaf", module: "thymeleaf-layout-dialect")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.sourceforge.nekohtml", module: "nekohtml")
                    force = true
                }
        ],
        unboundidscim           : [
                dependencies.create("com.unboundid.product.scim2:scim2-sdk-client:$unboundidScim2Version") {
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.fasterxml.jackson.jaxrs", module: "jackson-jaxrs-json-provider")
                    exclude(group: "org.apache.wink", module: "wink-client")
                    exclude(group: "org.apache.wink", module: "wink-common")
                    exclude(group: "org.apache.geronimo.specs", module: "geronimo-jaxrs_1.1_spec")
                    force = true
                },
                dependencies.create("com.unboundid.product.scim:scim-sdk:$unboundidScim1Version") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.glassfish.jersey.core", module: "oauth2-client")
                    exclude(group: "org.glassfish.jersey.core", module: "jersey-common")
                    exclude(group: "org.glassfish.jersey.core", module: "jersey-client")
                    exclude(group: "javax.ws.rs", module: "javax.ws.rs-api")
                    exclude(group: "javax.xml.bind", module: "jaxb-api")
                    exclude(group: "com.sun.xml.bind", module: "jaxb-impl")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.apache.wink", module: "wink-client")
                    exclude(group: "org.apache.wink", module: "wink-common")
                    exclude(group: "org.apache.geronimo.specs", module: "geronimo-jaxrs_1.1_spec")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                },
                dependencies.create("org.glassfish.jersey.security:oauth2-client:$jerseyVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                },
                dependencies.create("org.glassfish.jersey.inject:jersey-hk2:$jerseyVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                }
        ],
        jackson                 : [
                dependencies.create("com.fasterxml.jackson.core:jackson-databind:$jacksonDatabindVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    force = true
                },
                dependencies.create("com.fasterxml.jackson.datatype:jackson-datatype-guava:$jacksonDatabindVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    force = true
                },
                dependencies.create("com.fasterxml.jackson.core:jackson-annotations:$jacksonDatabindVersion") {
                    force = true
                },
                dependencies.create("com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jacksonDatabindVersion") {
                    force = true
                },
                dependencies.create("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonDatabindVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    force = true
                },
                dependencies.create("org.hjson:hjson:$hjsonVersion") {
                    force = true
                },
                dependencies.create("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jacksonDatabindVersion") {
                    exclude(group: "org.yaml", module: "snakeyaml")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    force = true
                }
        ],
        couchbase               : dependencies.create("com.couchbase.client:java-client:$couchbaseVersion"),
        ektorp                 : dependencies.create("org.ektorp:org.ektorp:$ektorpVersion"),
        jcifs                   : [
                dependencies.create("jcifs:jcifs:$jcifsVersion") {
                    exclude(group: "javax.servlet", module: "servlet-api")
                    force = true
                },
                dependencies.create("org.samba.jcifs:jcifs-ext:$jcifsExtVersion") {
                    exclude(group: "javax.servlet", module: "servlet-api")
                    force = true
                }
        ],
        snakeyaml               : [
                dependencies.create("org.yaml:snakeyaml:$snakeYamlVersion") {
                    exclude(group: "junit", module: "junit")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-io", module: "commons-io")
                    force = true
                }
        ],
        azurekeyvault           : [
                dependencies.create("com.microsoft.azure:azure-keyvault-secrets-spring-boot-starter:$azureKeyVaultSecretsVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.nimbusds", module: "nimbus-jose-jwt")
                }
        ],
        cosmosdb                : [
                dependencies.create("com.microsoft.azure:azure-documentdb:$cosmosdbVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("com.microsoft.azure:spring-data-documentdb:$springDataCosmosDbVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                }
        ],
        jdom                    : dependencies.create("jdom:jdom:$jdomVersion") {
            exclude(group: "xml-apis", module: "xml-apis")
            force = true
        },
        jodatime                : dependencies.create("joda-time:joda-time:$jodaTimeVersion") {
            force = true
        },
        jose4j                  : dependencies.create("org.bitbucket.b_c:jose4j:$jose4jVersion") {
            exclude(group: "org.slf4j", module: "slf4j-api")
            force = true
        },
        jradius                 : [
                dependencies.create("com.github.coova:jradius:$jradiusVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15")
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "commons-lang", module: "commons-lang")
                    force = true
                },
                dependencies.create("gnu.getopt:java-getopt:1.0.13") {
                    force = true
                }
        ],
        tests                   : [
                dependencies.create("com.github.kstyrc:embedded-redis:$embeddedRedisVersion") {
                    exclude(module: "commons-io")
                    force = true
                },
                dependencies.create("org.mockito:mockito-core:$mockitoVersion") {
                    exclude(group: "org.hamcrest", module: "hamcrest-core")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "net.bytebuddy", module: "byte-buddy")
                    force = true
                },
                dependencies.create("org.objenesis:objenesis:$objenesisVersion") {
                    force = true
                },
                dependencies.create("junit:junit:$junitVersion") {
                    force = true
                },
                dependencies.create("com.github.fakemongo:fongo:$fongoVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                },
                dependencies.create("de.flapdoodle.embed:de.flapdoodle.embed.memcached:$memcachedEmbeddedVersion") {
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "net.spy", module: "spymemcached")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-io", module: "commons-io")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-starter-test:$springBootVersion") {
                    exclude(group: "org.hamcrest", module: "hamcrest-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "org.springframework", module: "spring-test")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.skyscreamer", module: "jsonassert")
                    exclude(group: "org.ow2.asm", module: "asm")
                    force = true
                },
                dependencies.create("org.hsqldb:hsqldb:$hsqlVersion"),
                dependencies.create("org.skyscreamer:jsonassert:$jsonassertVersion") {
                    exclude(group: "org.json", module: "json")
                    exclude(group: "com.vaadin.external.google", module: "android-json")
                    force = true
                },
                dependencies.create("org.springframework:spring-test:$springVersion"),
                dependencies.create("org.spockframework:spock-core:$spockVersion"),
                dependencies.create("org.spockframework:spock-spring:$spockVersion"),
                dependencies.create("org.json:json:$jsonVersion") {
                    force = true
                }
        ],
        kryo                    : [
                dependencies.create("com.esotericsoftware:kryo:$kryoVersion") {
                    exclude(group: "net.spy", module: "spymemcached")
                    exclude(group: "org.objenesis", module: "objenesis")
                    force = true
                },
                dependencies.create("de.javakaffee:kryo-serializers:$kryoSerializersVersion") {
                    exclude(group: "com.esotericsoftware", module: "kryo")
                    exclude(group: "org.objenesis", module: "objenesis")
                    force = true
                },
                dependencies.create("org.objenesis:objenesis:$objenesisVersion") {
                    force = true
                }
        ],
        memcached               : [
                dependencies.create("net.spy:spymemcached:$spymemcachedVersion") {
                    force = true
                }
        ],
        awselasticachememcached : [
                dependencies.create("com.amazonaws:elasticache-java-cluster-client:$awsmemcachedVersion") {
                    force = true
                }
        ],
        ldaptive                : [
                dependencies.create("org.ldaptive:ldaptive:$ldaptiveVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.ldaptive:ldaptive-beans:$ldaptiveVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.ldaptive:ldaptive-unboundid:$ldaptiveVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "com.unboundid", module: "unboundid-ldapsdk")
                    force = true
                },
                dependencies.create("com.unboundid:unboundid-ldapsdk:$unboundidVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                },
                dependencies.create("org.ldaptive:ldaptive-apache:$ldaptiveVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-pool", module: "commons-pool")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "commons-cli", module: "commons-cli")
                    force = true
                }
        ],
        log4j                   : [
                dependencies.create("org.apache.logging.log4j:log4j-api:$log4jVersion") {
                    force = true
                },
                dependencies.create("org.apache.logging.log4j:log4j-core:$log4jVersion") {
                    force = true
                },
                dependencies.create("org.apache.logging.log4j:log4j-jcl:$log4jVersion") {
                    force = true
                },
                dependencies.create("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.logging.log4j:log4j-web:$log4jVersion"),
                dependencies.create("org.slf4j:slf4j-api:$slf4jVersion"),
                dependencies.create("org.slf4j:jul-to-slf4j:$slf4jVersion"),
                dependencies.create("com.lmax:disruptor:$disruptorVersion")
        ],
        metrics                 : [
                dependencies.create("com.timgroup:java-statsd-client:$statsdVersion") {
                    force = true
                },
                dependencies.create("io.dropwizard.metrics:metrics-annotation:$dropwizardMetricsVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-servlets")
                    force = true
                },
                dependencies.create("io.dropwizard.metrics:metrics-core:$dropwizardMetricsVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-servlets")
                    force = true
                },
                dependencies.create("io.dropwizard.metrics:metrics-jvm:$dropwizardMetricsVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-servlets")
                    force = true
                },
                dependencies.create("io.dropwizard.metrics:metrics-healthchecks:$dropwizardMetricsVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-servlets")
                    force = true
                },
                dependencies.create("io.dropwizard.metrics:metrics-servlets:$dropwizardMetricsVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-healthchecks")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-annotation")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-jvm")
                    exclude(group: "joda-time", module: "joda-time")
                },
                dependencies.create("com.ryantenney.metrics:metrics-spring:$dropwizardMetricsSpringVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-healthchecks")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-annotation")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-jvm")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-servlets")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework", module: "spring-aop")
                    force = true
                }
        ],
        mongo                   : dependencies.create("org.mongodb:mongo-java-driver:$mongoDriverVersion") {
            exclude(group: "commons-cli", module: "commons-cli")
            force = true
        },
        openid4java             : dependencies.create("org.openid4java:openid4java:$openidVersion") {
            exclude(group: "xerces", module: "xercesImpl")
            exclude(group: "org.apache.httpcomponents", module: "httpclient")
            exclude(group: "commons-logging", module: "commons-logging")
            force = true
        },
        opensaml                : [
                dependencies.create("org.opensaml:opensaml-core:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-xmlsec-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-saml-api:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-saml-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-security-api:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-xacml-saml-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-xacml-saml-api:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-security-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-soap-api:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-messaging-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-profile-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    force = true
                },
                dependencies.create("org.opensaml:opensaml-storage-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-orm")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.ldaptive", module: "ldaptive")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "io.dropwizard.metrics", module: "metrics-core")
                    force = true
                }
        ],
        pac4j                   : [
                dependencies.create("org.pac4j:pac4j-cas:$pac4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-config:$pac4jVersion") {
                    exclude(group: "com.nimbusds", module: "oauth2-oidc-sdk")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.zaxxer", module: "HikariCP")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "commons-httpclient", module: "commons-httpclient")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "net.minidev", module: "json-smart")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-api")
                    exclude(group: "org.opensaml", module: "opensaml-security-impl")
                    exclude(group: "org.opensaml", module: "opensaml-profile-api")
                    exclude(group: "org.opensaml", module: "opensaml-profile-impl")
                    exclude(group: "org.opensaml", module: "opensaml-soap-api")
                    exclude(group: "org.opensaml", module: "opensaml-messaging-api")
                    exclude(group: "org.opensaml", module: "opensaml-messaging-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-impl")
                    exclude(group: "org.opensaml", module: "opensaml-security-api")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "net.shibboleth.ext", module: "spring-extensions")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "com.nimbusds", module: "nimbus-jose-jwt")
                    exclude(group: "org.opensaml", module: "xmltooling")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-core:$pac4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.zaxxer", module: "HikariCP")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-http:$pac4jVersion") {
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-jwt:$pac4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "commons-io", module: "commons-io")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "net.minidev", module: "json-smart")
                    exclude(group: "com.nimbusds", module: "nimbus-jose-jwt")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-oidc:$pac4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "com.nimbusds", module: "nimbus-jose-jwt")
                    exclude(group: "net.minidev", module: "json-smart")
                    exclude(group: "com.nimbusds", module: "oauth2-oidc-sdk")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-mongo:$pac4jVersion") {
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.mongodb", module: "mongo-java-driver")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-oauth:$pac4jVersion") {
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.apache.commons", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "com.nimbusds", module: "oauth2-oidc-sdk")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    force = true
                },
                dependencies.create("org.pac4j:pac4j-saml:$pac4jVersion") {
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "org.apache.velocity", module: "velocity")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient-cache")
                    exclude(group: "commons-httpclient", module: "commons-httpclient")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-api")
                    exclude(group: "org.opensaml", module: "opensaml-security-impl")
                    exclude(group: "org.opensaml", module: "opensaml-profile-api")
                    exclude(group: "org.opensaml", module: "opensaml-profile-impl")
                    exclude(group: "org.opensaml", module: "opensaml-soap-api")
                    exclude(group: "org.opensaml", module: "opensaml-security-api")
                    exclude(group: "org.opensaml", module: "opensaml-messaging-api")
                    exclude(group: "org.opensaml", module: "opensaml-messaging-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-impl")
                    exclude(group: "org.opensaml", module: "opensaml-xmlsec-saml-impl")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "net.shibboleth.ext", module: "spring-extensions")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "xml-apis", module: "xml-apis")
                    exclude(group: "org.opensaml", module: "xmltooling")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    force = true
                },
                dependencies.create("org.pac4j:spring-webmvc-pac4j:$pac4jSpringWebmvcVersion") {
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.pac4j", module: "pac4j-core")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("com.nimbusds:nimbus-jose-jwt:$nimbusJoseVersion") {
                    exclude(group: "net.minidev", module: "json-smart")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("com.nimbusds:oauth2-oidc-sdk:$nimbusOidcVersion") {
                    exclude(group: "net.minidev", module: "json-smart")
                    exclude(group: "com.nimbusds", module: "nimbus-jose-jwt")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                    exclude(group: "commons-collections", module: "commons-collections")
                    force = true
                },
                dependencies.create("net.minidev:json-smart:$jsonSmartVersion") {
                    force = true
                }
        ],
        persondirectory         : dependencies.create("org.apereo.service.persondir:person-directory-impl:$personDirectoryVersion") {
            exclude(group: "commons-logging", module: "commons-logging")
            exclude(group: "org.slf4j", module: "slf4j-api")
            exclude(group: "org.apache.httpcomponents", module: "httpclient")
            exclude(group: "org.apache.commons", module: "commons-lang3")
            exclude(group: "org.apache.commons", module: "commons-collections4")
            exclude(group: "org.springframework", module: "spring-beans")
            exclude(group: "org.ldaptive", module: "ldaptive")
            exclude(group: "org.springframework", module: "spring-context")
            exclude(group: "org.springframework", module: "spring-core")
            exclude(group: "org.springframework", module: "spring-tx")
            exclude(group: "com.google.guava", module: "guava")
            exclude(group: "commons-io", module: "commons-io")
            exclude(group: "com.sun.xml.bind", module: "jaxb-impl")
            force = true
        },
        quartz                  : dependencies.create("org.quartz-scheduler:quartz:$quartzVersion") {
            exclude(group: "org.slf4j", module: "slf4j-api")
            exclude(group: "c3p0", module: "c3p0")
            exclude(group: "com.mchange", module: "c3p0")
            exclude(group: "com.zaxxer", module: "HikariCP-java6")
            force = true
        },
        shiro                   : [
                dependencies.create("org.apache.shiro:shiro-core:$shiroVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-beanutils", module: "commons-beanutils")
                    force = true
                }
        ],
        twilio                  : dependencies.create("com.twilio.sdk:twilio:$twilioVersion") {
            exclude(group: "org.slf4j", module: "slf4j-api")
            exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
            exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
            exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
            exclude(group: "javax.xml.bind", module: "jaxb-api")
            exclude(group: "org.apache.httpcomponents", module: "httpclient")
            force = true
        },
        textmagic               : [
                dependencies.create("com.textmagic.sdk:textmagic-java-sdk:$textMagicVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.codehaus.jackson", module: "jackson-mapper-asl")
                    exclude(group: "commons-lang", module: "commons-lang")
                    force = true
                },
                dependencies.create("org.codehaus.jackson:jackson-mapper-asl:1.9.13") {
                    transitive = false
                    force = true
                },
                dependencies.create("org.codehaus.jackson:jackson-core-asl:1.9.13") {
                    transitive = false
                    force = true
                }
        ],
        /*
        springcomponentindexer: [
                dependencies.create("org.springframework:spring-context-indexer:$springVersion") {
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                }
        ],
        */
        springbootconfigmetadata: [
                dependencies.create("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") {
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.json", module: "json")
                    exclude(group: "commons-cli", module: "commons-cli")
                },
                dependencies.create("org.json:json:$jsonVersion") {
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-configuration-metadata:$springBootVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "com.vaadin.external.google", module: "android-json")
                    force = true
                },
                dependencies.create("com.github.javaparser:javaparser-core:$javaParserVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                }

        ],
        springbootadminserver   : [
                dependencies.create("de.codecentric:spring-boot-admin-server:$springBootAdminVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.netflix.archaius", module: "archaius-core")
                    force = true
                },
                dependencies.create("de.codecentric:spring-boot-admin-server-ui:$springBootAdminVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    force = true
                },
                dependencies.create("com.netflix.zuul:zuul-core:1.3.0") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                }
        ],
        springbootadminclient   : [
                dependencies.create("de.codecentric:spring-boot-admin-starter-client:$springBootAdminVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    force = true
                }
        ],
        springboot              : [
                dependencies.create("org.springframework.boot:spring-boot-starter-websocket:$springBootVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-core")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-el")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-tomcat")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-starter-mail:$springBootVersion") {
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework", module: "spring-beans")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-starter-web:$springBootVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "log4j-over-slf4j")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-core")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-el")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-tomcat")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion") {
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot:$springBootVersion") {
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-devtools:$springBootVersion") {
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-starter-actuator:$springBootVersion") {
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    force = true
                },
                dependencies.create("org.springframework.boot:spring-boot-actuator:$springBootVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")

                    force = true
                }
        ],
        springboottomcat        : [
                dependencies.create("org.springframework.boot:spring-boot-starter-tomcat:$springBootVersion") {
                    force = true
                },
                dependencies.create("org.apache.tomcat.embed:tomcat-embed-jasper:$springBootTomcatVersion") {
                    force = true
                },
                dependencies.create("org.apache.tomcat:tomcat-catalina-ha:$springBootTomcatVersion") {
                    force = true
                }
        ],
        springbootjetty         : [
                dependencies.create("org.springframework.boot:spring-boot-starter-jetty:$springBootVersion") {
                    exclude(group: "org.ow2.asm", module: "asm")
                    exclude(group: "javax.annotation", module: "javax.annotation-api")
                    force = true
                },
                dependencies.create("org.ow2.asm:asm:$ow2AsmVersion") {
                    transitive = false
                    force = true
                }
        ],
        springbootundertow      : [
                dependencies.create("org.springframework.boot:spring-boot-starter-undertow:$springBootVersion") {
                    force = true
                }
        ],
        springbootredis         : [
                dependencies.create("org.springframework.boot:spring-boot-starter-data-redis:$springBootVersion") {
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    force = true
                }
        ],
        springintegration       : [
                dependencies.create("org.springframework.integration:spring-integration-core:$springIntegrationVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.springframework.integration:spring-integration-jmx:$springIntegrationVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        springcloudbus          : [
                dependencies.create("org.springframework.cloud:spring-cloud-bus:$springCloudBusVersion") {
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework.retry", module: "spring-retry")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "com.esotericsoftware", module: "kryo")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.boot", module: "spring-boot-autoconfigure")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-validation")
                    exclude(group: "org.springframework.integration", module: "spring-integration-core")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-el")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    force = true
                },
        ],
        springcloudbuskafka     : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-bus-kafka:$springCloudBusVersion") {
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework.retry", module: "spring-retry")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework.integration", module: "spring-integration-core")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-validation")
                    exclude(group: "org.springframework.boot", module: "spring-boot-autoconfigure")
                    exclude(group: "org.apache.zookeeper", module: "zookeeper")
                    exclude(group: "org.springframework.kafka", module: "spring-kafka")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "org.scala-lang", module: "scala-library")
                    exclude(group: "org.apache.kafka", module: "kafka-clients")
                    force = true
                },
                dependencies.create("org.springframework.kafka:spring-kafka:$kafkaSpringVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.scala-lang", module: "scala-library")
                    force = true
                }
        ],
        springintegrationamqp   : [
                dependencies.create("org.springframework.integration:spring-integration-amqp:$springIntegrationVersion") {
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework.retry", module: "spring-retry")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-validation")
                    force = true
                }
        ],
        springcloudbusamqp      : [
                dependencies.create("org.springframework.cloud:spring-cloud-config-monitor:$springCloudConfigVersion") {
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework.security", module: "spring-security-crypto")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-bus")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.yaml", module: "snakeyaml")
                    exclude(group: "org.springframework.integration", module: "spring-integration-amqp")
                    exclude(group: "org.springframework.integration", module: "spring-integration-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-autoconfigure")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-validation")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    force = true
                },
                dependencies.create("org.springframework.cloud:spring-cloud-starter-bus-amqp:$springCloudBusVersion") {
                    exclude(group: "org.springframework.retry", module: "spring-retry")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework.integration", module: "spring-integration-amqp")
                    exclude(group: "org.springframework.integration", module: "spring-integration-core")
                    exclude(group: "org.springframework.amqp", module: "spring-rabbit")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-validation")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    force = true
                }
        ],
        zookeeper               : [
                dependencies.create("org.apache.zookeeper:zookeeper:$zookeeperVersion") {
                    exclude(group: "jline", module: "jline")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.curator", module: "curator-recipes")
                    exclude(group: "org.apache.curator", module: "curator-framework")
                    exclude(group: "org.apache.curator", module: "curator-client")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                },
                dependencies.create("org.apache.curator:curator-recipes:$curatorVersion") {
                    exclude(group: "org.apache.zookeeper", module: "zookeeper")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.curator:curator-framework:$curatorVersion") {
                    exclude(group: "org.apache.zookeeper", module: "zookeeper")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.apache.curator:curator-client:$curatorVersion") {
                    exclude(group: "org.apache.zookeeper", module: "zookeeper")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        springcloudconsul       : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-consul-all:$springCloudConsulVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                }
        ],
        springcloudeureka       : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:$springCloudEurekaVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "javax.servlet", module: "servlet-api")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "com.netflix.archaius", module: "archaius-core")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.netflix.servo", module: "servo-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "com.netflix.eureka", module: "eureka-client")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.gson", module: "gson")
                    exclude(group: "com.thoughtworks.xstream", module: "xstream")
                    force = true
                }
        ],
        eurekaclient            : [
                dependencies.create("com.netflix.eureka:eureka-client:$eurekaClientVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.netflix.archaius", module: "archaius-core")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-eureka")
                    exclude(group: "javax.servlet", module: "servlet-api")
                    exclude(group: "com.netflix.netflix-commons", module: "netflix-eventbus")
                    exclude(group: "com.google.code.gson", module: "gson")
                    force = true
                },
                dependencies.create("com.netflix.netflix-commons:netflix-eventbus:0.3.0") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.netflix.servo", module: "servo-core")
                    exclude(group: "com.netflix.archaius", module: "archaius-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "javax.servlet", module: "servlet-api")
                    exclude(group: "com.thoughtworks.xstream", module: "xstream")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.google.code.gson", module: "gson")
                    force = true
                }
        ],
        ribbon                  : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-ribbon:$springCloudEurekaVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "javax.servlet", module: "servlet-api")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "com.netflix.ribbon", module: "ribbon")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-loadbalancer")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-transport")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                },
                dependencies.create("com.netflix.ribbon:ribbon:$ribbonVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "com.netflix.archaius", module: "archaius-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-transport")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-loadbalancer")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-httpclient")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    force = true
                },
                dependencies.create("com.netflix.ribbon:ribbon-loadbalancer:$ribbonVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.netflix.servo", module: "servo-core")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                },
                dependencies.create("com.netflix.ribbon:ribbon-httpclient:$ribbonVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-loadbalancer")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-eureka")
                    exclude(group: "com.netflix.servo", module: "servo-core")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    force = true
                },
                dependencies.create("com.netflix.ribbon:ribbon-eureka:$ribbonVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "com.netflix.eureka", module: "eureka-client")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-loadbalancer")
                    exclude(group: "com.netflix.servo", module: "servo-core")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "com.thoughtworks.xstream", module: "xstream")
                    force = true
                },
                dependencies.create("com.netflix.ribbon:ribbon-transport:$ribbonVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "io.reactivex", module: "rxjava")
                    exclude(group: "com.netflix.servo", module: "servo-core")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-loadbalancer")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-eureka")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    force = true
                }
        ],
        springcloudeurekaserver : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-netflix-eureka-server:$springCloudEurekaVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "com.netflix.eureka", module: "eureka-client")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-starter-ribbon")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-loadbalancer")
                    exclude(group: "com.netflix.ribbon", module: "ribbon")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-transport")
                    exclude(group: "com.netflix.ribbon", module: "ribbon-eureka")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    force = true
                }
        ],
        springcloudsleuth       : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-sleuth:$springCloudSleuthVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.fasterxml", module: "classmate")
                    force = true
                },
                dependencies.create("org.springframework.cloud:spring-cloud-starter-zipkin:$springCloudSleuthVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.fasterxml", module: "classmate")
                    force = true
                }
        ],
        springcloudzookeeper    : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-zookeeper-config:$springCloudZookeeperVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "org.apache.zookeeper", module: "zookeeper")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.curator", module: "curator-recipes")
                    force = true
                },
                dependencies.create("org.springframework.cloud:spring-cloud-starter-zookeeper:$springCloudZookeeperVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "com.google.code.findbugs", module: "jsr305")
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "org.apache.curator", module: "curator-recipes")
                    force = true
                }
        ],
        springcloudvault        : [
                dependencies.create("org.springframework.cloud:spring-cloud-starter-vault-config:$springCloudVaultVersion") {
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.apache.httpcomponents", module: "httpcore")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    force = true
                }
        ],
        springcloudconfigclient : [
                dependencies.create("org.springframework.cloud:spring-cloud-config-client:$springCloudConfigVersion") {
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework.security", module: "spring-security-crypto")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.slf4j", module: "logj-over-slf4j")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    exclude(group: "org.springframework.boot", module: "spring-boot-autoconfigure")
                    force = true
                }
        ],
        springcloudconfigserver : [
                dependencies.create("org.springframework.cloud:spring-cloud-config-server:$springCloudConfigVersion") {
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework.security", module: "spring-security-crypto")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.slf4j", module: "logj-over-slf4j")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot")
                    exclude(group: "org.springframework.boot", module: "spring-boot-autoconfigure")
                    exclude(group: "org.yaml", module: "snakeyaml")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-commons")
                    force = true
                }
        ],
        springcloud             : [
                dependencies.create("org.springframework.cloud:spring-cloud-commons:$springCloudCommonsVersion") {
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "org.springframework", module: "spring-messaging")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework.retry", module: "spring-retry")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "org.jboss.logging", module: "jboss-logging")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "com.fasterxml", module: "classmate")
                    exclude(group: "com.esotericsoftware", module: "kryo")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.boot", module: "spring-boot-autoconfigure")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-validation")
                    exclude(group: "org.springframework.integration", module: "spring-integration-core")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-el")
                    force = true
                },
                dependencies.create("org.springframework.cloud:spring-cloud-context:$springCloudContextVersion") {
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework.security", module: "spring-security-crypto")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "org.hibernate", module: "hibernate-validator")
                    exclude(group: "org.apache.httpcomponents", module: "httpclient")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "org.slf4j", module: "logj-over-slf4j")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter")
                    exclude(group: "org.springframework.cloud", module: "spring-cloud-context")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    force = true
                }
        ],

        springsession           : [
                dependencies.create("org.springframework.session:spring-session:$springSessionVersion") {
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-context")
                    force = true
                }
        ],
        spring                  : [
                dependencies.create("org.springframework.shell:spring-shell:$springShellVersion") {
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-context-support")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "jline", module: "jline")
                    exclude(group: "commons-io", module: "commons-io")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                },
                dependencies.create("org.springframework:spring-aop:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-beans:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework.webflow:spring-binding:$springWebflowVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("org.springframework:spring-context:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-context-support:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-core:$springVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    force = true
                },
                dependencies.create("org.springframework.data:spring-data-mongodb:$springDataMongoDbVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework.data", module: "spring-data-commons")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.mongodb", module: "mongo-java-driver")
                    force = true
                },
                dependencies.create("org.springframework.data:spring-data-commons:$springDataCommonsVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "org.mongodb", module: "mongo-java-driver")
                    force = true
                },

                dependencies.create("org.springframework:spring-jms:$springVersion") {
                    exclude(group: "org.springframework", module: "spring-messaging")
                    force = true
                },
                dependencies.create("org.springframework:spring-messaging:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-expression:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-jdbc:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-orm:$springVersion"),
                dependencies.create("org.springframework:spring-tx:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework:spring-web:$springVersion") {
                    force = true
                },
                dependencies.create("org.springframework.webflow:spring-webflow:$springWebflowVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    force = true
                },
                dependencies.create("org.apereo:spring-webflow-client-repo:$springWebflowClientVersion") {
                    exclude(group: "log4j", module: "log4j")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "slf4j-log4j12")
                    exclude(group: "org.springframework.webflow", module: "spring-webflow")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.slf4j", module: "jcl-over-slf4j")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    force = true
                },
                dependencies.create("org.springframework:spring-webmvc:$springVersion") {
                    force = true
                }
        ],

        springsecurityconfig    : [
                dependencies.create("org.springframework.security:spring-security-config:$springSecurityVersion") {
                    exclude(group: "aopalliance", module: "aopalliance")
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-jdbc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "javax.annotation", module: "jsr250-api")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.aspectj", module: "aspectjrt")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        springsecurityweb       : [
                dependencies.create("org.springframework.security:spring-security-web:$springSecurityVersion") {
                    exclude(group: "aopalliance", module: "aopalliance")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-jdbc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "javax.annotation", module: "jsr250-api")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.aspectj", module: "aspectjrt")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        springsecurity          : [
                dependencies.create("org.springframework.security:spring-security-core:$springSecurityVersion") {
                    exclude(group: "aopalliance", module: "aopalliance")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-beans")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-expression")
                    exclude(group: "org.springframework", module: "spring-jdbc")
                    exclude(group: "org.springframework", module: "spring-tx")
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "javax.annotation", module: "jsr250-api")
                    exclude(group: "net.sf.ehcache", module: "ehcache")
                    exclude(group: "org.aspectj", module: "aspectjrt")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],

        validationapi           : dependencies.create("javax.validation:validation-api:$javaxValidationVersion"),
        xmlapis                 : dependencies.create("xml-apis:xml-apis:$xmlapisVersion") {
            force = true
        },
        yubicoapi               :
                dependencies.create("com.yubico:yubico-validation-client2:$yubicoVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-codec", module: "commons-codec")
                    force = true
                },
        u2flibserver            :
                dependencies.create("com.yubico:u2flib-server-core:$yubicoU2fServerVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                    exclude(group: "org.bouncycastle", module: "bcpkix-jdk15on")
                    exclude(group: "com.google.guava", module: "guava")
                    force = true
                },
        duojava                 : [
                dependencies.create("net.unicon.iam:duo-java:$duoVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                },
                dependencies.create("net.unicon.iam:duo-client:0.2.2") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    force = true
                }
        ],
        authyjava               : [
                dependencies.create("com.authy:authy-java:$authyVersion") {
                    exclude(module: "slf4j-api")
                    exclude(group: "org.json", module: "json")
                    force = true
                }
        ],
        webjars                 : [
                dependencies.create("org.webjars:headjs:$headjsVersion") {
                    force = true
                },
                dependencies.create("org.webjars:store.js:$storejsVersion") {
                    force = true
                },
                dependencies.create("org.webjars:font-awesome:$fontAwesomeVersion") {
                    force = true
                },
                dependencies.create("org.webjars:jquery-ui:$jqueryUiVersion") {
                    force = true
                },
                dependencies.create("org.webjars:jquery:$jqueryVersion") {
                    force = true
                },
                dependencies.create("org.webjars:zxcvbn:$zxcvbnVersion") {
                    force = true
                },
                dependencies.create("org.webjars:bootstrap:$bootstrapVersion") {
                    force = true
                },
                dependencies.create("org.webjars:jquery-cookie:$jqueryCookieVersion") {
                    force = true
                },
                dependencies.create("org.webjars:lato:$latoVersion") {
                    force = true
                },
                dependencies.create("org.webjars:jquery-ui-themes:$jqueryUiThemesVersion") {
                    force = true
                },
                dependencies.create("org.webjars:datatables:$datatablesVersion") {
                    force = true
                },
                dependencies.create("org.webjars:datatables-plugins:$datatablesPluginsVersion") {
                    force = true
                },
                dependencies.create("org.webjars:d3js:$d3jsVersion") {
                    force = true
                },
                dependencies.create("org.webjars:bootstrap-select:$bootstrapSelectVersion") {
                    force = true
                },
                dependencies.create("org.webjars.npm:angular:$angularJsVersion") {
                    force = true
                },
                dependencies.create("org.webjars.npm:angular-route:$angularJsRouteVersion") {
                    force = true
                },
                dependencies.create("org.webjars:angular-ui:$angularUiVersion") {
                    exclude(group: "org.webjars", module: "angularjs")
                    force = true
                },
                dependencies.create("org.webjars.npm:angular-ui-sortable:$angularUiSortableVersion") {
                    force = true
                },
                dependencies.create("org.webjars:lodash:$lodashVersion") {
                    force = true
                },
                dependencies.create("org.webjars:ng-table:$ngtableVersion") {
                    exclude(group: "org.webjars.bower", module: "angular")
                    force = true
                },
                dependencies.create("org.webjars:momentjs:$momentVersion") {
                    force = true
                },
                dependencies.create("org.webjars:knockout:$knockoutVersion") {
                    force = true
                },
                dependencies.create("org.webjars:Eonasdan-bootstrap-datetimepicker:$datetimePickerVersion") {
                    force = true
                },
                dependencies.create("org.webjars:editable-table:$editableTableVersion") {
                    force = true
                },
                dependencies.create("org.webjars:Semantic-UI:$semanticUIVersion") {
                    force = true
                }
        ]
]

Ray Bon

unread,
Apr 20, 2021, 11:42:50 AM4/20/21
to cas-...@apereo.org
Terki,

It is odd the splunk repo folder requires authentication. My guess is an oversight on the part of spring.

You could ask spring to remove the auth requirement.

In the mean time, if you have an existing build, you could get the library from there and install in your local repo/nexus server.

In cas 6.3, splunk is included from jfrog, see https://github.com/apereo/cas/blob/6.3.x/build.gradle. It is not in the master branch.

Ray
Reply all
Reply to author
Forward
0 new messages