ext.libraries = [
        jackson                 : [
                dependencies.create("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                },
                dependencies.create("com.fasterxml.jackson.core:jackson-core:$jacksonVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-annotations")
                },
                dependencies.create("com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion") {
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                },
                dependencies.create("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonVersion") {
                    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: "com.fasterxml.jackson", module: "jackson-bom")
                },
                dependencies.create("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion") {
                    exclude(group: "com.fasterxml.jackson", module: "jackson-bom")
                    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")
                },
                dependencies.create("org.hjson:hjson:$hjsonVersion") {
                },
                dependencies.create("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jacksonVersion") {
                    exclude(group: "org.yaml", module: "snakeyaml")
                    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")
                },
                dependencies.create("com.fasterxml.jackson.dataformat:jackson-dataformat-properties:$jacksonVersion") {
                    exclude(group: "org.yaml", module: "snakeyaml")
                    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")
                }
        ],
        groovy                  : [
                dependencies.create("org.codehaus.groovy:groovy-jsr223:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                },
                dependencies.create("org.codehaus.groovy:groovy-json:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                },
                dependencies.create("org.codehaus.groovy:groovy-xml:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                },
                dependencies.create("org.codehaus.groovy:groovy-datetime:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                },
                dependencies.create("org.codehaus.groovy:groovy-sql:$groovyVersion") {
                    exclude(group: "commons-cli", module: "commons-cli")
                },
                dependencies.create("org.codehaus.groovy:groovy-groovysh:$groovyVersion") {
                    exclude(group: "org.codehaus.groovy", module: "groovy-swing")
                    exclude(group: "org.codehaus.groovy", module: "groovy-console")
                }
        ],
        slf4j                   : [
                dependencies.create("org.slf4j:slf4j-api:$slf4jVersion") {
                },
                dependencies.create("org.slf4j:jul-to-slf4j:$slf4jVersion") {
                },
        ],
        log4j                   : [
                dependencies.create("org.springframework.boot:spring-boot-starter-log4j2:$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.slf4j", module: "slf4j-api")
                    exclude(group: "org.slf4j", module: "jul-to-slf4j")
                    exclude(group: "org.apache.logging.log4j", module: "log4j-slf4j-impl")
                    exclude(group: "org.apache.logging.log4j", module: "log4j-core")
                    exclude(group: "org.apache.logging.log4j", module: "log4j-api")
                    exclude(group: "org.apache.logging.log4j", module: "log4j-jcl")
                    exclude(group: "org.apache.logging.log4j", module: "log4j-jul")
                },
                dependencies.create("org.apache.logging.log4j:log4j-api:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("org.apache.logging.log4j:log4j-core:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("org.apache.logging.log4j:log4j-jcl:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("org.apache.logging.log4j:log4j-jul:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("org.apache.logging.log4j:log4j-jakarta-web:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("org.apache.logging.log4j:log4j-layout-template-json:$log4jVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },
                dependencies.create("com.lmax:disruptor:$disruptorVersion")
        ],
        commons                 : [
                dependencies.create("commons-io:commons-io:$commonsIoVersion") {
                },
                dependencies.create("org.apache.commons:commons-jexl3:$commonsJexlVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "junit", module: "junit")
                },
                dependencies.create("org.apache.commons:commons-text:$commonsTextVersion") {
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.apache.commons", module: "commons-lang3")
                },
                dependencies.create("org.apache.commons:commons-pool2:$commonsPoolVersion") {
                },
                dependencies.create("commons-cli:commons-cli:$commonsCliVersion") {
                },
                dependencies.create("commons-beanutils:commons-beanutils:$commonsBeansVersion") {
                    exclude(group: "commons-logging", module: "commons-logging")
                },
                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")
                },
                dependencies.create("commons-codec:commons-codec:$commonsCodecVersion") {
                },
                dependencies.create("org.apache.commons:commons-lang3:$commonsLangVersion") {
                },
                dependencies.create("commons-lang:commons-lang:2.6") {
                },
                dependencies.create("commons-collections:commons-collections:$commonsCollections3Version") {
                },
                dependencies.create("org.apache.commons:commons-collections4:$commonsCollectionsVersion") {
                },
                dependencies.create("org.hibernate.validator:hibernate-validator:$hibernateValidatorVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.hibernate", module: "hibernate-core")
                    exclude(group: "org.hibernate", module: "hibernate-entitymanager")
                    exclude(group: "org.hibernate", module: "hibernate-ant")
                }
        ],
        javax                   : [
                dependencies.create("jakarta.servlet:jakarta.servlet-api:$jakartaServletVersion") {
                }
        ],
        thymeleaf               : [
                dependencies.create("org.thymeleaf:thymeleaf-spring6:$thymeleafVersion") {
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.javassist", module: "javassist")
                    exclude(group: "org.sourceforge.nekohtml", module: "nekohtml")
                },
                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")
                }
        ],
        tests                   : [
                dependencies.create("org.mockito:mockito-core:$mockitoVersion") {
                    exclude(group: "org.hamcrest", module: "hamcrest-core")
                    exclude(group: "org.objenesis", module: "objenesis")
                    exclude(group: "junit", module: "junit")
                    exclude(group: "net.bytebuddy", module: "byte-buddy")
                },
                dependencies.create("org.mockito:mockito-junit-jupiter:$mockitoVersion") {
                    exclude(group: "org.mockito", module: "mockito-core")
                    exclude(group: "org.junit.jupiter", module: "junit-jupiter-api")
                },
                dependencies.create("org.junit.jupiter:junit-jupiter-api:$junitVersion") {
                },
                dependencies.create("org.junit.jupiter:junit-jupiter-params:$junitVersion") {
                },
                dependencies.create("org.junit.platform:junit-platform-engine:$junitPlatformVersion") {
                },
                dependencies.create("org.junit.platform:junit-platform-suite-api:$junitPlatformVersion") {
                },
                dependencies.create("org.junit.platform:junit-platform-launcher:$junitPlatformVersion") {
                },
                dependencies.create("org.junit.platform:junit-platform-runner:$junitPlatformVersion") {
                },
                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-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")
                    exclude(group: "junit", module: "junit")
                    exclude(group: "org.mockito", module: "mockito-all")
                    exclude(group: "org.mockito", module: "mockito-core")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                },
                dependencies.create("org.skyscreamer:jsonassert:$jsonassertVersion") {
                    exclude(group: "org.json", module: "json")
                    exclude(group: "com.vaadin.external.google", module: "android-json")
                },
                dependencies.create("org.json:json:$jsonVersion") {
                }
        ],
        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")
                },
                dependencies.create("org.pac4j:pac4j-config:$pac4jVersion") {
                    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: "org.opensaml", module: "xmltooling")
                    exclude(group: "org.cryptacular", module: "cryptacular")
                },
                dependencies.create("org.pac4j:pac4j-jakartaee:$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")
                },
                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")
                },
                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")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-databind")
                    exclude(group: "com.fasterxml.jackson.core", module: "jackson-core")
                },
                dependencies.create("org.pac4j:spring-security-pac4j:$pac4jSpringSecurityVersion") {
                    exclude(group: "org.springframework", module: "spring-webmvc")
                    exclude(group: "org.springframework", module: "spring-core")
                    exclude(group: "org.springframework", module: "spring-web")
                    exclude(group: "org.springframework", module: "spring-aop")
                    exclude(group: "org.springframework", module: "spring-context")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "org.aspectj", module: "aspectjweaver")
                    exclude(group: "org.pac4j", module: "pac4j-core")
                    exclude(group: "joda-time", module: "joda-time")
                    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-core")
                    exclude(group: "commons-collections", module: "commons-collections")
                }
        ],
        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: "com.vaadin.external.google", module: "android-json")
                    exclude(group: "org.json", module: "json")
                    exclude(group: "commons-cli", module: "commons-cli")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                },
                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")
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-reactor-netty")
                    exclude(group: "org.springframework.boot", module: "spring-boot-parent")
                }
        ],
        springboottomcat        : [
                dependencies.create("org.springframework.boot:spring-boot-starter-tomcat:$springBootVersion") {
                    exclude(group: "ch.qos.logback", module: "logback-core")
                    exclude(group: "ch.qos.logback", module: "logback-classic")
                    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.springframework", module: "spring-aop")
                    exclude(group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket")
                    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")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-web")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
                },
                dependencies.create("org.apache.tomcat.embed:tomcat-embed-core:$springBootTomcatVersion") {
                    exclude(group: "org.apache.tomcat", module: "tomcat-annotations-api")
                },
                dependencies.create("org.apache.tomcat.embed:tomcat-embed-el:$springBootTomcatVersion") {
                    exclude(group: "org.apache.tomcat", module: "tomcat-annotations-api")
                }
        ],
        springboot              : [
                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")
                },
                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-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-json")
                    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")
                },
                dependencies.create("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion") {
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-actuator")
                    exclude(group: "org.springframework.boot", module: "spring-boot-starter-json")
                    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")
                    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-jsr310")
                },
                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")
                },
                dependencies.create("org.springframework.boot:spring-boot-properties-migrator:$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")
                    exclude(group: "com.vaadin.external.google", module: "android-json")
                    exclude(group: "com.vaadin.external.google", module: "android-json")
                },
                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: "org.springframework.boot", module: "spring-boot-starter-json")
                    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")
                },
                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")
                }
        ],
        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")
                }
        ],
        opensaml                : [
                dependencies.create("xerces:xercesImpl:$xercesVersion") {
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                },

                dependencies.create("org.opensaml:opensaml-core-api:$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: "org.opensaml", module: "opensaml-profile-api")
                    exclude(group: "org.opensaml", module: "opensaml-profile-impl")
                    exclude(group: "org.opensaml", module: "opensaml-messaging-api")
                    exclude(group: "org.opensaml", module: "opensaml-soap-api")
                    exclude(group: "org.opensaml", module: "opensaml-session-api")
                    exclude(group: "org.opensaml", module: "opensaml-security-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                },
                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: "commons-codec", module: "commons-codec")
                    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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.apache.velocity", module: "velocity")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                    exclude(group: "org.opensaml", module: "opensaml-profile-api")
                },
                dependencies.create("org.opensaml:opensaml-profile-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: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-codec", module: "commons-codec")
                    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.springframework", module: "spring-context")
                    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: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.apache.velocity", module: "velocity")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-codec", module: "commons-codec")
                    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.springframework", module: "spring-context")
                    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: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.apache.velocity", module: "velocity")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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: "commons-lang", module: "commons-lang")
                    exclude(group: "commons-codec", module: "commons-codec")
                    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-context")
                    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: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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: "commons-codec", module: "commons-codec")
                    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")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                    exclude(group: "org.opensaml", module: "opensaml-security-api")
                },
                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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                },
                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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "commons-codec", module: "commons-codec")
                    exclude(group: "org.apache.velocity", module: "velocity")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-profile-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                    exclude(group: "org.opensaml", module: "opensaml-messaging-api")
                    exclude(group: "org.opensaml", module: "opensaml-security-api")
                },
                dependencies.create("org.opensaml:opensaml-storage-impl:$opensamlVersion") {
                    exclude(group: "org.bouncycastle", module: "bcprov-jdk15on")
                    exclude(group: "commons-collections", module: "commons-collections")
                    exclude(group: "commons-codec", module: "commons-codec")
                    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")
                    exclude(group: "net.shibboleth.utilities", module: "java-support")
                    exclude(group: "org.apache.velocity", module: "velocity")
                    exclude(group: "commons-lang", module: "commons-lang")
                    exclude(group: "org.opensaml", module: "opensaml-saml-api")
                    exclude(group: "org.opensaml", module: "opensaml-saml-impl")
                    exclude(group: "org.opensaml", module: "opensaml-core")
                }
        ],
        shibidpjavasupport      : [
                dependencies.create("net.shibboleth.utilities:java-support:$shibbolethUtilJavaSupportVersion") {
                    exclude(group: "com.google.guava", module: "guava")
                    exclude(group: "joda-time", module: "joda-time")
                    exclude(group: "org.slf4j", module: "slf4j-api")
                    exclude(group: "commons-codec", module: "commons-codec")
                    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: "commons-lang", module: "commons-lang")
                    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")
                    exclude(group: "net.shibboleth.idp", module: "idp-authn-api")
                }
        ],
        casServer               : [
                util           : [
                        dependencies.create("org.apereo.cas:cas-server-core-util:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-notifications:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-notifications-api:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-logging-api:$casVersion") {
                        }
                ],
                utilApi        :
                        dependencies.create("org.apereo.cas:cas-server-core-util-api:$casVersion") {
                        },
                configuration  : [
                        dependencies.create("org.apereo.cas:cas-server-core-api-configuration-model:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-services:$casVersion") {
                        },
                ],
                testCore       : [
                        dependencies.create("org.apereo.cas:cas-server-core-services:$casVersion") {
                        }
                ],
                core           : [
                        dependencies.create("org.apereo.cas:cas-server-core-util-api:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-web:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-ws-idp-api:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-grouper-core:$casVersion") {
                            exclude group: 'org.apereo.cas', module: 'cas-server-core-webflow'
                            exclude group: 'org.apereo.cas', module: 'cas-server-core-web'
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-oidc-services:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-oidc-core:$casVersion") {
                        }
                ],
                versionControl : [

                ],
                audit          :
                        dependencies.create("org.apereo.cas:cas-server-core-audit-api:$casVersion") {
                        },
                ldap           :
                        dependencies.create("org.apereo.cas:cas-server-support-ldap-core:$casVersion") {
                        },
                personDirectory:
                        dependencies.create("org.apereo.cas:cas-server-support-person-directory:$casVersion") {
                        },
                discovery      :
                        dependencies.create("org.apereo.cas:cas-server-support-discovery-profile-core:$casVersion") {
                            transitive = false
                        },
                saml           : [
                        dependencies.create("org.apereo.cas:cas-server-support-saml-core-api:$casVersion") {
                            transitive = false
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-saml-core:$casVersion") {
                            transitive = false
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-saml-idp-core:$casVersion") {
                            transitive = false
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-saml-idp-metadata:$casVersion") {
                            transitive = false
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-saml-idp-web:$casVersion") {
                            transitive = false
                        }
                ],
                services       : [
                        dependencies.create("org.apereo.cas:cas-server-core-services-api:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-surrogate-api:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-services-registry:$casVersion") {
                        }
                ],
                authentication : [
                        dependencies.create("org.apereo.cas:cas-server-core-authentication-api:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-authentication-attributes:$casVersion") {
                        }
                ],
                oauth          : [
                        dependencies.create("org.apereo.cas:cas-server-support-token-core-api:$casVersion") {
                            exclude group: 'org.apereo.cas', module: 'cas-server-core-webflow'
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-oauth-api:$casVersion") {
                            exclude group: 'org.apereo.cas', module: 'cas-server-core-webflow'
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-oauth-services:$casVersion") {
                        },
                        dependencies.create("org.apereo.cas:cas-server-support-oauth-core-api:$casVersion") {
                            exclude group: 'org.apereo.cas', module: 'cas-server-core-webflow'
                        },
                        dependencies.create("org.apereo.cas:cas-server-core-services-authentication:$casVersion") {
                        }
                ],
                oidc           :
                        dependencies.create("org.apereo.cas:cas-server-support-oidc-core:$casVersion") {
                        },
                web            :
                        dependencies.create("org.apereo.cas:cas-server-core-web-api:$casVersion") {
                        }
        ],
        validationapi           : dependencies.create("jakarta.validation:jakarta.validation-api:$jakartaValidationVersion"),
        git                     :
                dependencies.create("org.eclipse.jgit:org.eclipse.jgit:$jgitVersion") {
                    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
                    exclude group: 'org.slf4j', module: 'slf4j'
                    exclude group: 'org.slf4j', module: 'slf4j-api'
                    exclude group: 'org.apache.commons', module: 'commons-lang3'
                    
                },
        lucene                  : [
                dependencies.create("org.apache.lucene:lucene-core:$luceneVersion") {
                },
                dependencies.create("org.apache.lucene:lucene-queryparser:$luceneVersion") {
                }
        ]
]
