build.gradle.kts 2.6 KB

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