import java.time.LocalDateTime import java.time.format.DateTimeFormatter plugins { id("otel.java-conventions") id("com.google.cloud.tools.jib") id("org.springframework.boot") version "2.7.18" } dependencies { implementation(platform("io.opentelemetry:opentelemetry-bom:1.0.0")) implementation(platform("org.springframework.boot:spring-boot-dependencies:2.7.18")) implementation("io.opentelemetry:opentelemetry-api") implementation(project(":instrumentation-annotations")) implementation("org.springframework.boot:spring-boot-starter-web") } configurations.runtimeClasspath { resolutionStrategy { // requires old logback (and therefore also old slf4j) force("ch.qos.logback:logback-classic:1.2.13") force("org.slf4j:slf4j-api:1.7.36") } } val targetJDK = project.findProperty("targetJDK") ?: "11" val tag = findProperty("tag") ?: DateTimeFormatter.ofPattern("yyyyMMdd.HHmmSS").format(LocalDateTime.now()) java { // needed by jib to detect java version used in project // for jdk9+ jib uses an entrypoint that doesn't work with jdk8 sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } springBoot { buildInfo { } } jib { from.image = "openjdk:$targetJDK" to.image = "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk$targetJDK-$tag" container.ports = listOf("8080") } tasks { val springBootJar by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } artifacts { add("springBootJar", bootJar) } }