import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import io.gitlab.arturbosch.detekt.Detekt plugins { alias(libs.plugins.kotlin) apply false alias(libs.plugins.detekt) alias(libs.plugins.ktlint) alias(libs.plugins.versionCheck) } subprojects { apply { plugin(rootProject.libs.plugins.detekt.get().pluginId) plugin(rootProject.libs.plugins.ktlint.get().pluginId) } ktlint { debug.set(false) verbose.set(true) android.set(false) outputToConsole.set(true) ignoreFailures.set(false) enableExperimentalRules.set(true) filter { exclude("**/generated/**") include("**/kotlin/**") } } detekt { config = rootProject.files("config/detekt/detekt.yml") } } tasks.withType().configureEach { reports { html.required.set(true) html.outputLocation.set(file("build/reports/detekt.html")) } } tasks.withType { rejectVersionIf { candidate.version.isNonStable() } } fun String.isNonStable() = "^[0-9,.v-]+(-r)?$".toRegex().matches(this).not() tasks.register("clean", Delete::class.java) { delete(rootProject.buildDir) } tasks.register("reformatAll") { description = "Reformat all the Kotlin Code" dependsOn("ktlintFormat") dependsOn(gradle.includedBuild("plugin-build").task(":unmeta:ktlintFormat")) } tasks.register("preMerge") { description = "Runs all the tests/verification tasks on both top level and included build." dependsOn(":example:check") dependsOn(gradle.includedBuild("plugin-build").task(":unmeta:check")) dependsOn(gradle.includedBuild("plugin-build").task(":unmeta:validatePlugins")) } tasks.wrapper { distributionType = Wrapper.DistributionType.ALL }