build.gradle.kts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
  2. plugins {
  3. id("com.github.johnrengelman.shadow")
  4. id("otel.java-conventions")
  5. }
  6. description = "opentelemetry-api shaded for internal javaagent usage"
  7. group = "io.opentelemetry.javaagent"
  8. val latestDeps by configurations.creating {
  9. isCanBeResolved = true
  10. isCanBeConsumed = false
  11. }
  12. val v1_10Deps by configurations.creating {
  13. isCanBeResolved = true
  14. isCanBeConsumed = false
  15. // exclude the bom added by dependencyManagement
  16. exclude("io.opentelemetry", "opentelemetry-bom")
  17. }
  18. // configuration for publishing the shadowed artifact
  19. val v1_10 by configurations.creating {
  20. isCanBeConsumed = true
  21. isCanBeResolved = false
  22. }
  23. dependencies {
  24. latestDeps("io.opentelemetry:opentelemetry-api")
  25. latestDeps("io.opentelemetry:opentelemetry-api-logs")
  26. listOf("opentelemetry-api", "opentelemetry-context").forEach {
  27. v1_10Deps("io.opentelemetry:$it") {
  28. version {
  29. strictly("1.10.0")
  30. }
  31. }
  32. }
  33. }
  34. // OpenTelemetry API shaded so that it can be used in instrumentation of OpenTelemetry API itself,
  35. // and then its usage can be unshaded after OpenTelemetry API is shaded
  36. // (see more explanation in opentelemetry-api-1.0.gradle)
  37. tasks {
  38. withType<ShadowJar>().configureEach {
  39. relocate("io.opentelemetry", "application.io.opentelemetry")
  40. }
  41. shadowJar {
  42. configurations = listOf(latestDeps)
  43. }
  44. val v1_10Shadow by registering(ShadowJar::class) {
  45. configurations = listOf(v1_10Deps)
  46. archiveClassifier.set("v1_10")
  47. }
  48. artifacts {
  49. add(v1_10.name, v1_10Shadow)
  50. }
  51. }