custom/build.gradle.kts (55 lines of code) (raw):

plugins { id("elastic-otel.library-packaging-conventions") } val instrumentations = listOf<String>( ":instrumentation:openai-client-instrumentation:instrumentation-1.1" ) dependencies { implementation(project(":common")) implementation(project(":inferred-spans")) implementation(project(":universal-profiling-integration")) implementation(project(":resources")) implementation(project(":internal-logging", configuration = "shadow")) instrumentations.forEach { implementation(project(it)) } compileOnly("io.opentelemetry:opentelemetry-sdk") compileOnly("io.opentelemetry:opentelemetry-exporter-otlp") compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api") compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling") compileOnly(libs.bundles.semconv) implementation(libs.contribSpanStacktrace) { // exclude transitive dependency as it's provided through agent packaging exclude(group = "io.opentelemetry", module = "opentelemetry-sdk") } testImplementation(libs.contribSpanStacktrace) // needs to be added in order to allow access to AgentListener interface // this is currently required because autoconfigure is currently not exposed to the extension API. compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") // test dependencies testImplementation(project(":testing-common")) testImplementation("io.opentelemetry:opentelemetry-sdk") testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") testImplementation("io.opentelemetry:opentelemetry-exporter-otlp") testImplementation("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling") { //The following dependency isn't actually needed, but breaks the classpath when testing with Java 8 exclude(group = "io.opentelemetry.javaagent", module = "opentelemetry-javaagent-tooling-java9") } testImplementation(libs.bundles.semconv) testImplementation("io.opentelemetry.javaagent:opentelemetry-testing-common") testImplementation("io.opentelemetry:opentelemetry-sdk-testing") testImplementation(libs.freemarker) } tasks { instrumentations.forEach { // TODO: instrumentation dependencies must be declared here explicitly atm, otherwise gradle complains // about it being missing we need to figure out a way of including it in the "compileJava" task // to not have to do this javadoc { dependsOn("$it:byteBuddyJava") } compileTestJava { dependsOn("$it:byteBuddyJava") } } } tasks.withType<Test> { val overrideConfig = project.properties["elastic.otel.overwrite.config.docs"] if (overrideConfig != null) { systemProperty("elastic.otel.overwrite.config.docs", overrideConfig) } }