import com.android.build.gradle.internal.lint.AndroidLintTask import nl.littlerobots.vcu.plugin.resolver.VersionSelectors 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.kotlin.kover) alias(libs.plugins.spotless) 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 } sonar { properties { property("sonar.projectKey", "YAEP") property("sonar.projectName", "YAEP") property("sonar.organization", "default") property( "sonar.coverage.jacoco.xmlReportPaths", "${layout.buildDirectory.asFile.get()}/reports/kover/report.xml" ) } } tasks.withType().configureEach { dependsOn( subprojects .flatMap { it.tasks.withType() } .filter { it.variantName != "release" } ) dependsOn("koverXmlReport") } tasks.withType().configureEach { compilerOptions { jvmTarget.set(JvmTarget.fromTarget(libs.versions.jdk.get())) } } spotless { kotlin { target("**/*.kt") targetExclude("**/build/**", "**/.gradle/**") // ktlint("1.5.0") diktat("1.0.1") } kotlinGradle { target("**/*.gradle.kts") targetExclude("**/build/**", "**/.gradle/**") ktlint("1.5.0") } } versionCatalogUpdate { sortByKey = false keep { keepUnusedVersions = true } versionSelector(VersionSelectors.STABLE) } subprojects { tasks.withType { testLogging { events("passed", "skipped", "failed") } } } dependencies { kover(projects.domain) kover(projects.commonUI) kover(projects.desktop) kover(projects.android) }