plugins { id "com.github.johnrengelman.shadow" } ext { mavenGroupId = 'io.opentelemetry.javaagent' } apply from: "$rootDir/gradle/java.gradle" dependencies { testImplementation project(':javaagent-spi') testImplementation project(':javaagent-tooling') testImplementation project(':javaagent-exporters:otlp') testImplementation project(':javaagent-exporters:jaeger') testImplementation project(':javaagent-exporters:logging') testImplementation project(':javaagent-exporters:zipkin') testImplementation project(':javaagent-exporters:prometheus') } tasks.withType(Test).configureEach() { dependsOn ':javaagent-exporters:otlp:shadowJar' dependsOn ':javaagent-exporters:jaeger:shadowJar' dependsOn ':javaagent-exporters:logging:shadowJar' dependsOn ':javaagent-exporters:zipkin:shadowJar' dependsOn ':javaagent-exporters:prometheus:shadowJar' doFirst { systemProperty 'projectVersion', allprojects.version[0] systemProperty 'adapterRoot', "$rootDir/javaagent-exporters" systemProperty 'otlpExporterJar', project(':javaagent-exporters:otlp').tasks.shadowJar.archivePath systemProperty 'jaegerExporterJar', project(':javaagent-exporters:jaeger').tasks.shadowJar.archivePath systemProperty 'loggingExporterJar', project(':javaagent-exporters:logging').tasks.shadowJar.archivePath systemProperty 'zipkinExporterJar', project(':javaagent-exporters:zipkin').tasks.shadowJar.archivePath systemProperty 'prometheusExporterJar', project(':javaagent-exporters:prometheus').tasks.shadowJar.archivePath } } configurations { shadowInclude } dependencies { shadowInclude project(path: ':javaagent-exporters:logging', configuration: 'shadow') shadowInclude project(path: ':javaagent-exporters:otlp', configuration: 'shadow') shadowInclude project(path: ':javaagent-exporters:jaeger', configuration: 'shadow') shadowInclude project(path: ':javaagent-exporters:zipkin', configuration: 'shadow') shadowInclude project(path: ':javaagent-exporters:prometheus', configuration: 'shadow') } jar.enabled = false shadowJar { configurations = [project.configurations.shadowInclude] archiveClassifier = '' mergeServiceFiles() exclude '**/module-info.class' // Prevents conflict with other SLF4J instances. Important for premain. relocate 'org.slf4j', 'io.opentelemetry.javaagent.slf4j' // rewrite dependencies calling Logger.getLogger relocate 'java.util.logging.Logger', 'io.opentelemetry.javaagent.bootstrap.PatchLogger' // relocate OpenTelemetry API usage relocate "io.opentelemetry.api", "io.opentelemetry.javaagent.shaded.io.opentelemetry.api" relocate "io.opentelemetry.semconv", "io.opentelemetry.javaagent.shaded.io.opentelemetry.semconv" relocate "io.opentelemetry.spi", "io.opentelemetry.javaagent.shaded.io.opentelemetry.spi" relocate "io.opentelemetry.context", "io.opentelemetry.javaagent.shaded.io.opentelemetry.context" // relocate OpenTelemetry extensions relocate "io.opentelemetry.extension.kotlin", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.kotlin" relocate "io.opentelemetry.extension.trace.propagation", "io.opentelemetry.javaagent.shaded.io.opentelemetry.extension.trace.propagation" }