build.gradle.kts 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. plugins {
  2. id("otel.library-instrumentation")
  3. }
  4. // Name the Spring Boot modules in accordance with https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-auto-configuration.custom-starter
  5. base.archivesName.set("opentelemetry-spring-boot")
  6. group = "io.opentelemetry.instrumentation"
  7. val versions: Map<String, String> by project
  8. val springBootVersion = versions["org.springframework.boot"]
  9. dependencies {
  10. implementation("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion")
  11. annotationProcessor("org.springframework.boot:spring-boot-autoconfigure-processor:$springBootVersion")
  12. implementation("javax.validation:validation-api")
  13. implementation(project(":instrumentation-annotations-support"))
  14. implementation(project(":instrumentation:kafka:kafka-clients:kafka-clients-2.6:library"))
  15. implementation(project(":instrumentation:spring:spring-kafka-2.7:library"))
  16. implementation(project(":instrumentation:spring:spring-web:spring-web-3.1:library"))
  17. implementation(project(":instrumentation:spring:spring-webmvc:spring-webmvc-5.3:library"))
  18. implementation(project(":instrumentation:spring:spring-webflux-5.0:library"))
  19. implementation(project(":instrumentation:micrometer:micrometer-1.5:library"))
  20. compileOnly("org.springframework.kafka:spring-kafka:2.9.0")
  21. compileOnly("org.springframework.boot:spring-boot-starter-actuator:$springBootVersion")
  22. compileOnly("org.springframework.boot:spring-boot-starter-aop:$springBootVersion")
  23. compileOnly("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
  24. compileOnly("org.springframework.boot:spring-boot-starter-webflux:$springBootVersion")
  25. compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
  26. compileOnly("io.opentelemetry:opentelemetry-extension-annotations")
  27. compileOnly("io.opentelemetry:opentelemetry-extension-trace-propagators")
  28. compileOnly("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
  29. compileOnly("io.opentelemetry:opentelemetry-exporter-logging")
  30. compileOnly("io.opentelemetry:opentelemetry-exporter-jaeger")
  31. compileOnly("io.opentelemetry:opentelemetry-exporter-otlp")
  32. compileOnly("io.opentelemetry:opentelemetry-exporter-zipkin")
  33. compileOnly(project(":instrumentation-annotations"))
  34. compileOnly(project(":instrumentation:resources:library"))
  35. annotationProcessor("com.google.auto.service:auto-service")
  36. compileOnly("com.google.auto.service:auto-service-annotations")
  37. testImplementation("org.springframework.kafka:spring-kafka:2.9.0")
  38. testImplementation("org.springframework.boot:spring-boot-starter-actuator:$springBootVersion")
  39. testImplementation("org.springframework.boot:spring-boot-starter-aop:$springBootVersion")
  40. testImplementation("org.springframework.boot:spring-boot-starter-webflux:$springBootVersion")
  41. testImplementation("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
  42. testImplementation("org.springframework.boot:spring-boot-starter-test:$springBootVersion") {
  43. exclude("org.junit.vintage", "junit-vintage-engine")
  44. }
  45. testImplementation("org.testcontainers:kafka")
  46. testImplementation(project(":testing-common"))
  47. testImplementation("io.opentelemetry:opentelemetry-sdk")
  48. testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
  49. testImplementation(project(":instrumentation:resources:library"))
  50. testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
  51. testImplementation("io.opentelemetry:opentelemetry-extension-annotations")
  52. testImplementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
  53. testImplementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
  54. testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
  55. testImplementation("io.opentelemetry:opentelemetry-exporter-jaeger")
  56. testImplementation("io.opentelemetry:opentelemetry-exporter-otlp")
  57. testImplementation("io.opentelemetry:opentelemetry-exporter-zipkin")
  58. testImplementation(project(":instrumentation-annotations"))
  59. }
  60. tasks.compileTestJava {
  61. options.compilerArgs.add("-parameters")
  62. }
  63. tasks.withType<Test>().configureEach {
  64. // required on jdk17
  65. jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
  66. jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
  67. // disable tests on openj9 18 because they often crash JIT compiler
  68. val testJavaVersion = gradle.startParameter.projectProperties["testJavaVersion"]?.let(JavaVersion::toVersion)
  69. val testOnOpenJ9 = gradle.startParameter.projectProperties["testJavaVM"]?.run { this == "openj9" }
  70. ?: false
  71. if (testOnOpenJ9 && testJavaVersion?.majorVersion == "18") {
  72. enabled = false
  73. }
  74. }