build.gradle.kts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. val v1_15Deps by configurations.creating {
  19. isCanBeResolved = true
  20. isCanBeConsumed = false
  21. // exclude the bom added by dependencyManagement
  22. exclude("io.opentelemetry", "opentelemetry-bom")
  23. }
  24. // configuration for publishing the shadowed artifact
  25. val v1_10 by configurations.creating {
  26. isCanBeConsumed = true
  27. isCanBeResolved = false
  28. }
  29. val v1_15 by configurations.creating {
  30. isCanBeConsumed = true
  31. isCanBeResolved = false
  32. }
  33. dependencies {
  34. latestDeps("io.opentelemetry:opentelemetry-api")
  35. latestDeps("io.opentelemetry:opentelemetry-api-logs")
  36. listOf("opentelemetry-api", "opentelemetry-context").forEach {
  37. v1_10Deps("io.opentelemetry:$it") {
  38. version {
  39. strictly("1.10.0")
  40. }
  41. }
  42. v1_15Deps("io.opentelemetry:$it") {
  43. version {
  44. strictly("1.15.0")
  45. }
  46. }
  47. }
  48. }
  49. // OpenTelemetry API shaded so that it can be used in instrumentation of OpenTelemetry API itself,
  50. // and then its usage can be unshaded after OpenTelemetry API is shaded
  51. // (see more explanation in opentelemetry-api-1.0.gradle)
  52. tasks {
  53. withType<ShadowJar>().configureEach {
  54. relocate("io.opentelemetry", "application.io.opentelemetry")
  55. }
  56. shadowJar {
  57. configurations = listOf(latestDeps)
  58. }
  59. val v1_10Shadow by registering(ShadowJar::class) {
  60. configurations = listOf(v1_10Deps)
  61. archiveClassifier.set("v1_10")
  62. }
  63. val v1_15Shadow by registering(ShadowJar::class) {
  64. configurations = listOf(v1_15Deps)
  65. archiveClassifier.set("v1_15")
  66. }
  67. artifacts {
  68. add(v1_10.name, v1_10Shadow)
  69. add(v1_15.name, v1_15Shadow)
  70. }
  71. }