build.gradle.kts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import java.time.LocalDateTime
  2. import java.time.format.DateTimeFormatter
  3. plugins {
  4. id("otel.java-conventions")
  5. id("com.google.cloud.tools.jib")
  6. id("org.springframework.boot") version "2.7.18"
  7. }
  8. dependencies {
  9. implementation(platform("io.opentelemetry:opentelemetry-bom:1.0.0"))
  10. implementation(platform("org.springframework.boot:spring-boot-dependencies:2.7.18"))
  11. implementation("io.opentelemetry:opentelemetry-api")
  12. implementation(project(":instrumentation-annotations"))
  13. implementation("org.springframework.boot:spring-boot-starter-web")
  14. }
  15. configurations.runtimeClasspath {
  16. resolutionStrategy {
  17. // requires old logback (and therefore also old slf4j)
  18. force("ch.qos.logback:logback-classic:1.2.13")
  19. force("org.slf4j:slf4j-api:1.7.36")
  20. }
  21. }
  22. val targetJDK = project.findProperty("targetJDK") ?: "11"
  23. val tag = findProperty("tag")
  24. ?: DateTimeFormatter.ofPattern("yyyyMMdd.HHmmSS").format(LocalDateTime.now())
  25. java {
  26. // needed by jib to detect java version used in project
  27. // for jdk9+ jib uses an entrypoint that doesn't work with jdk8
  28. sourceCompatibility = JavaVersion.VERSION_1_8
  29. targetCompatibility = JavaVersion.VERSION_1_8
  30. }
  31. springBoot {
  32. buildInfo {
  33. }
  34. }
  35. jib {
  36. from.image = "openjdk:$targetJDK"
  37. to.image = "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk$targetJDK-$tag"
  38. container.ports = listOf("8080")
  39. }
  40. tasks {
  41. val springBootJar by configurations.creating {
  42. isCanBeConsumed = true
  43. isCanBeResolved = false
  44. }
  45. artifacts {
  46. add("springBootJar", bootJar)
  47. }
  48. }