build.gradle.kts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. plugins {
  2. alias(libs.plugins.java.library)
  3. alias(libs.plugins.kotlin.jvm)
  4. alias(libs.plugins.jacoco)
  5. }
  6. dependencies {
  7. // Standard libraries
  8. api(libs.kotlin.stdlib)
  9. api(libs.kotlinx.coroutines.core)
  10. // Dependency injection
  11. api(project.dependencies.platform(libs.koin.bom))
  12. api(libs.koin.core)
  13. // HTTP
  14. api(platform(libs.okhttp3.bom))
  15. api(libs.okhttp3)
  16. api(libs.okhttp3.coroutines)
  17. api(libs.okhttp3.loggingInterceptor)
  18. // JSON
  19. implementation(libs.kotlinx.serialization.json)
  20. // Annotations
  21. compileOnly(libs.compose.annotation)
  22. // Testing
  23. testImplementation(libs.junit)
  24. testImplementation(libs.mockk)
  25. testImplementation(libs.kotlinx.coroutines.test)
  26. testImplementation(libs.kotlin.test)
  27. testImplementation(libs.turbine)
  28. testImplementation(project(":test-helpers"))
  29. }
  30. tasks.withType<Test> {
  31. useJUnitPlatform()
  32. }
  33. tasks.withType<JacocoReport> {
  34. reports {
  35. xml.required = true
  36. html.required = false
  37. }
  38. }
  39. sonarqube {
  40. properties {
  41. property("sonar.projectKey", "android-client")
  42. property("sonar.projectName", "Threema for Android")
  43. property("sonar.sources", "src/main/")
  44. property("sonar.tests", "src/test/")
  45. property("sonar.sourceEncoding", "UTF-8")
  46. property("sonar.verbose", "true")
  47. property(
  48. "sonar.coverage.jacoco.xmlReportPaths",
  49. "${projectDir.parentFile.path}/build/reports/jacoco/codeCoverageReport/codeCoverageReport.xml",
  50. )
  51. }
  52. }
  53. java {
  54. sourceCompatibility = JavaVersion.VERSION_11
  55. targetCompatibility = JavaVersion.VERSION_11
  56. }
  57. kotlin {
  58. compilerOptions {
  59. jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
  60. }
  61. }