build.gradle.kts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. plugins {
  2. id("otel.library-instrumentation")
  3. id("otel.animalsniffer-conventions")
  4. }
  5. val mrJarVersions = listOf(11)
  6. dependencies {
  7. implementation("io.opentelemetry:opentelemetry-sdk-common")
  8. implementation("io.opentelemetry:opentelemetry-semconv")
  9. implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
  10. compileOnly("org.codehaus.mojo:animal-sniffer-annotations")
  11. annotationProcessor("com.google.auto.service:auto-service")
  12. compileOnly("com.google.auto.service:auto-service-annotations")
  13. testImplementation("org.junit.jupiter:junit-jupiter-api")
  14. }
  15. for (version in mrJarVersions) {
  16. sourceSets {
  17. create("java$version") {
  18. java {
  19. setSrcDirs(listOf("src/main/java$version"))
  20. }
  21. }
  22. }
  23. tasks {
  24. named<JavaCompile>("compileJava${version}Java") {
  25. sourceCompatibility = "$version"
  26. targetCompatibility = "$version"
  27. options.release.set(version)
  28. }
  29. }
  30. configurations {
  31. named("java${version}Implementation") {
  32. extendsFrom(configurations["implementation"])
  33. }
  34. named("java${version}CompileOnly") {
  35. extendsFrom(configurations["compileOnly"])
  36. }
  37. }
  38. dependencies {
  39. // Common to reference classes in main sourceset from Java 9 one (e.g., to return a common interface)
  40. add("java${version}Implementation", files(sourceSets.main.get().output.classesDirs))
  41. }
  42. }
  43. tasks {
  44. withType(Jar::class) {
  45. for (version in mrJarVersions) {
  46. into("META-INF/versions/$version") {
  47. from(sourceSets["java$version"].output)
  48. }
  49. }
  50. manifest.attributes(
  51. "Multi-Release" to "true"
  52. )
  53. }
  54. }