def groovyVer = "2.5.8" def spockGroovyVer = groovyVer.replaceAll(/\.\d+$/, '') ext { versions = [ opentracing: '0.32.0', slf4j : "1.7.29", guava : "20.0", // Last version to support Java 7 okhttp : "3.12.8", // 3.12.x is last version to support Java7) spock : "1.3-groovy-$spockGroovyVer", groovy : groovyVer, logback : "1.2.3", lombok : "1.18.10", bytebuddy : "1.10.6", scala : "2.11.12", // Last version to support Java 7 (2.12+ require Java 8+) kotlin : "1.3.61", coroutines : "1.3.0" ] deps = [ // OpenTracing opentracingApi : dependencies.create(group: 'io.opentracing', name: 'opentracing-api', version: versions.opentracing), opentracing : [ dependencies.create(group: 'io.opentracing', name: 'opentracing-api', version: versions.opentracing), dependencies.create(group: 'io.opentracing', name: 'opentracing-noop', version: versions.opentracing), dependencies.create(group: 'io.opentracing', name: 'opentracing-util', version: versions.opentracing), ], opentracingMock: dependencies.create(group: 'io.opentracing', name: 'opentracing-mock', version: versions.opentracing), // General slf4j : "org.slf4j:slf4j-api:${versions.slf4j}", guava : "com.google.guava:guava:$versions.guava", okhttp : dependencies.create(group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp), bytebuddy : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy', version: versions.bytebuddy), bytebuddyagent : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy-agent', version: versions.bytebuddy), autoservice : [ dependencies.create(group: 'com.google.auto.service', name: 'auto-service', version: '1.0-rc3'), dependencies.create(group: 'com.google.auto', name: 'auto-common', version: '0.8'), // These are the last versions that support guava 20.0. Upgrading has odd interactions with shadow. dependencies.create(group: 'com.google.guava', name: 'guava', version: "${versions.guava}"), ], // Testing spock : [ dependencies.create("org.spockframework:spock-core:${versions.spock}", { exclude group: 'org.codehaus.groovy', module: 'groovy-all' }), // Used by Spock for mocking: dependencies.create(group: 'org.objenesis', name: 'objenesis', version: '2.6') // Last version to support Java7 ], groovy : "org.codehaus.groovy:groovy-all:${versions.groovy}", testcontainers : "org.testcontainers:testcontainers:1.12.2", testLogging : [ dependencies.create(group: 'ch.qos.logback', name: 'logback-classic', version: versions.logback), dependencies.create(group: 'org.slf4j', name: 'log4j-over-slf4j', version: versions.slf4j), dependencies.create(group: 'org.slf4j', name: 'jcl-over-slf4j', version: versions.slf4j), dependencies.create(group: 'org.slf4j', name: 'jul-to-slf4j', version: versions.slf4j), ], scala : dependencies.create(group: 'org.scala-lang', name: 'scala-library', version: "${versions.scala}"), kotlin : dependencies.create(group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: "${versions.kotlin}"), coroutines : dependencies.create(group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: "${versions.coroutines}"), // Shared between agent tooling and instrumentation and JMXFetch shared : [ dependencies.create(group: 'com.datadoghq', name: 'java-dogstatsd-client', version: '2.8'), // "Explicit override jnr version because .22 caused issues" - mar-kolya dependencies.create(group: 'com.github.jnr', name: 'jnr-unixsocket', version: '0.23'), dependencies.create(group: 'com.google.guava', name: 'guava', version: "${versions.guava}") ], // Inverse of "shared". These exclude directives are part of shadowJar's DSL // which is similar but not exactly the same as the regular gradle dependency{} block // Also, transitive dependencies have to be explicitly listed sharedInverse : (Closure) { // dogstatsd and its transitives exclude(dependency('com.datadoghq:java-dogstatsd-client')) exclude(dependency('com.github.jnr::')) exclude(dependency('org.ow2.asm::')) // Guava and its transitives exclude(dependency('com.google.guava::')) exclude(dependency('com.google.code.findbugs::')) exclude(dependency('com.google.errorprone::')) exclude(dependency('com.google.j2objc::')) exclude(dependency('org.codehaus.mojo::')) exclude(dependency('org.checkerframework::')) } ] }