javaagent-tooling.gradle 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import com.github.jk1.license.render.InventoryMarkdownReportRenderer
  2. plugins {
  3. id "com.github.jk1.dependency-license-report" version "1.16"
  4. }
  5. group = 'io.opentelemetry.javaagent'
  6. apply from: "$rootDir/gradle/java.gradle"
  7. apply from: "$rootDir/gradle/publish.gradle"
  8. // TODO this is not the desired state, only reflects current reality
  9. minimumBranchCoverage = 0
  10. minimumInstructionCoverage = 0
  11. configurations {
  12. // classpath used by the instrumentation muzzle plugin
  13. instrumentationMuzzle {
  14. canBeConsumed = true
  15. canBeResolved = false
  16. extendsFrom implementation
  17. }
  18. }
  19. dependencies {
  20. implementation project(':javaagent-bootstrap')
  21. implementation project(':javaagent-spi')
  22. implementation project(':javaagent-api')
  23. implementation project(':instrumentation-api')
  24. implementation deps.opentelemetryApi
  25. implementation deps.opentelemetryApiMetrics
  26. implementation deps.opentelemetryContext
  27. implementation deps.opentelemetrySdk
  28. implementation deps.opentelemetrySdkAutoconfigure
  29. implementation deps.opentelemetrySdkMetrics
  30. implementation (deps.opentelemetryKotlin) {
  31. // opentelemetry-extension-kotlin classes are injected into user classpath
  32. // where kotlin core libraries are already present
  33. exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-common'
  34. exclude group: 'org.jetbrains.kotlinx', module: 'kotlinx-coroutines-core'
  35. }
  36. implementation deps.opentelemetryExtAws
  37. implementation deps.opentelemetryTraceProps
  38. implementation(deps.opentelemetryResources) {
  39. // exclude sdk-common to avoid bumping guava version
  40. exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk-common'
  41. }
  42. implementation deps.opentelemetryJaeger
  43. implementation deps.opentelemetryLogging
  44. implementation deps.opentelemetryOtlp
  45. implementation deps.opentelemetryOtlpMetrics
  46. implementation deps.opentelemetryPrometheus
  47. implementation deps.opentelemetryZipkin
  48. implementation group: 'com.blogspot.mydailyjava', name: 'weak-lock-free', version: '0.15'
  49. implementation deps.bytebuddy
  50. implementation deps.bytebuddyagent
  51. annotationProcessor deps.autoservice
  52. implementation deps.autoservice
  53. implementation deps.slf4j
  54. implementation group: 'io.grpc', name: 'grpc-netty', version: '1.34.1'
  55. testImplementation project(':testing-common')
  56. testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.18.1'
  57. testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.6.0'
  58. instrumentationMuzzle sourceSets.main.output
  59. }
  60. test {
  61. filter {
  62. excludeTestsMatching 'HelperInjectionTest'
  63. }
  64. }
  65. // Needs a fresh classloader.
  66. // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/919
  67. test.finalizedBy(tasks.register('testHelperInjection', Test) {
  68. filter {
  69. includeTestsMatching 'HelperInjectionTest'
  70. }
  71. })
  72. licenseReport {
  73. outputDir = rootProject.file("licenses")
  74. renderers = [new InventoryMarkdownReportRenderer()]
  75. configurations = ["compileClasspath"]
  76. excludeGroups = [
  77. "io.opentelemetry.instrumentation",
  78. "io.opentelemetry.javaagent"
  79. ]
  80. }
  81. def cleanLicenses = tasks.register("cleanLicenses", Delete) {
  82. delete(rootProject.file("licenses"))
  83. }
  84. tasks.named("generateLicenseReport").configure {
  85. dependsOn(cleanLicenses)
  86. }