build.gradle.kts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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. val v1_31Deps by configurations.creating {
  31. isCanBeResolved = true
  32. isCanBeConsumed = false
  33. // exclude the bom added by dependencyManagement
  34. exclude("io.opentelemetry", "opentelemetry-bom")
  35. exclude("io.opentelemetry", "opentelemetry-bom-alpha")
  36. }
  37. val v1_32Deps by configurations.creating {
  38. isCanBeResolved = true
  39. isCanBeConsumed = false
  40. // exclude the bom added by dependencyManagement
  41. exclude("io.opentelemetry", "opentelemetry-bom")
  42. }
  43. // configuration for publishing the shadowed artifact
  44. val v1_10 by configurations.creating {
  45. isCanBeConsumed = true
  46. isCanBeResolved = false
  47. }
  48. val v1_15 by configurations.creating {
  49. isCanBeConsumed = true
  50. isCanBeResolved = false
  51. }
  52. val v1_27 by configurations.creating {
  53. isCanBeConsumed = true
  54. isCanBeResolved = false
  55. }
  56. val v1_31 by configurations.creating {
  57. isCanBeConsumed = true
  58. isCanBeResolved = false
  59. }
  60. val v1_32 by configurations.creating {
  61. isCanBeConsumed = true
  62. isCanBeResolved = false
  63. }
  64. dependencies {
  65. latestDeps("io.opentelemetry:opentelemetry-api")
  66. listOf("opentelemetry-api", "opentelemetry-context").forEach {
  67. v1_10Deps("io.opentelemetry:$it") {
  68. version {
  69. strictly("1.10.0")
  70. }
  71. }
  72. v1_15Deps("io.opentelemetry:$it") {
  73. version {
  74. strictly("1.15.0")
  75. }
  76. }
  77. v1_27Deps("io.opentelemetry:$it") {
  78. version {
  79. strictly("1.27.0")
  80. }
  81. }
  82. v1_31Deps("io.opentelemetry:$it") {
  83. version {
  84. strictly("1.31.0")
  85. }
  86. }
  87. v1_32Deps("io.opentelemetry:$it") {
  88. version {
  89. strictly("1.32.0")
  90. }
  91. }
  92. }
  93. listOf("opentelemetry-extension-incubator").forEach {
  94. v1_31Deps("io.opentelemetry:$it") {
  95. version {
  96. strictly("1.31.0-alpha")
  97. }
  98. }
  99. v1_32Deps("io.opentelemetry:$it") {
  100. version {
  101. strictly("1.32.0-alpha")
  102. }
  103. }
  104. }
  105. }
  106. // OpenTelemetry API shaded so that it can be used in instrumentation of OpenTelemetry API itself,
  107. // and then its usage can be unshaded after OpenTelemetry API is shaded
  108. // (see more explanation in opentelemetry-api-1.0.gradle)
  109. tasks {
  110. withType<ShadowJar>().configureEach {
  111. relocate("io.opentelemetry", "application.io.opentelemetry")
  112. }
  113. shadowJar {
  114. configurations = listOf(latestDeps)
  115. }
  116. val v1_10Shadow by registering(ShadowJar::class) {
  117. configurations = listOf(v1_10Deps)
  118. archiveClassifier.set("v1_10")
  119. }
  120. val v1_15Shadow by registering(ShadowJar::class) {
  121. configurations = listOf(v1_15Deps)
  122. archiveClassifier.set("v1_15")
  123. }
  124. val v1_27Shadow by registering(ShadowJar::class) {
  125. configurations = listOf(v1_27Deps)
  126. archiveClassifier.set("v1_27")
  127. }
  128. val v1_31Shadow by registering(ShadowJar::class) {
  129. configurations = listOf(v1_31Deps)
  130. archiveClassifier.set("v1_31")
  131. }
  132. val v1_32Shadow by registering(ShadowJar::class) {
  133. configurations = listOf(v1_32Deps)
  134. archiveClassifier.set("v1_32")
  135. }
  136. artifacts {
  137. add(v1_10.name, v1_10Shadow)
  138. add(v1_15.name, v1_15Shadow)
  139. add(v1_27.name, v1_27Shadow)
  140. add(v1_31.name, v1_31Shadow)
  141. add(v1_32.name, v1_32Shadow)
  142. }
  143. }