import com.android.build.gradle.internal.coverage.JacocoReportTask import com.android.build.gradle.internal.lint.AndroidLintTask import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile import org.sonarqube.gradle.SonarTask plugins { alias(libs.plugins.versions) alias(libs.plugins.sonarqube) alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.compose) apply false alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.jetbrains.kotlin.android) apply false } sonar { properties { property("sonar.projectKey", "YAEP") property("sonar.projectName", "YAEP") val reports = subprojects .flatMap { p -> p.tasks.withType() } .map { t -> "${t.outputReportDir.asFile.get()}/report.xml" } property( "sonar.coverage.jacoco.xmlReportPaths", reports ) } } tasks.withType().configureEach { dependsOn( subprojects .flatMap { it.tasks.withType() } .filter { it.variantName != "release" } ) dependsOn( subprojects .flatMap { it.tasks.withType() } .filter { it.variantName != "release" } ) } tasks.withType().configureEach { compilerOptions { jvmTarget.set(JvmTarget.fromTarget(libs.versions.jdk.get())) } } tasks.withType { rejectVersionIf { isNonStable(candidate.version) && !isNonStable(currentVersion) } } fun isNonStable(version: String): Boolean { return version.contains("dev", ignoreCase = true) || version.contains("alpha", ignoreCase = true) || version.contains("beta", ignoreCase = true) || version.contains("RC", ignoreCase = true) } subprojects { tasks.withType { testLogging { events("passed", "skipped", "failed") } } }