import io.gitlab.arturbosch.detekt.Detekt import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { gradle.configureMavenRepositories(delegate) } dependencies { classpath libs.android.gradle.plugin classpath libs.kotlin.gradle.plugin classpath libs.mozilla.glean.gradle.plugin classpath libs.osslicenses.plugin // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } plugins { id "mozac.ConfigPlugin" alias(libs.plugins.dependency.analysis) alias(libs.plugins.detekt) alias(libs.plugins.kotlin.compose) apply false alias(libs.plugins.ksp) } mozilla { ktlintSourcePaths = ["app/**/*.kt", "buildSrc/**/*.kt", "!**/build/**/*.kt"] } dependencyAnalysis { structure { bundle("leakcanary") { includeGroup("com.squareup.leakcanary") } // Ignore Android KTX dependencies. See https://developer.android.com/kotlin/ktx#modules //ignoreKtx(true) } issues { all { onAny { // Fail the run if any issues are found (default = 'warn') //severity('fail') } } } } detekt { input = files("$projectDir/app") config = files("$projectDir/quality/detekt.yml") baseline = file("$projectDir/quality/detekt-baseline.xml") reports { html { enabled = true destination = file("$projectDir/build/reports/detekt.html") } xml { enabled = false } txt { enabled = false } } } tasks.withType(Detekt).configureEach() { // Custom detekt rules should be built before. // See https://detekt.dev/docs/introduction/extensions#pitfalls dependsOn(":components:tooling-detekt:assemble") autoCorrect = true exclude "**/test/**" exclude "**/androidTest/**" exclude "**/build/**" exclude "**/resources/**" exclude "**/tmp/**" } // Apply same path exclusions as for the main task tasks.withType(DetektCreateBaselineTask).configureEach() { exclude "**/test/**" exclude "**/androidTest/**" exclude "**/build/**" exclude "**/resources/**" exclude "**/tmp/**" } tasks.register('clean', Delete) { delete rootProject.layout.buildDirectory } dependencies { detektPlugins project(':components:tooling-detekt') } tasks.register("listRepositories") { def reposData = project.provider { project.repositories.collect { repo -> [name: repo.name, url: repo.url.toString()] } } doLast { println "Repositories:" reposData.get().each { println "Name: " + it.name + "; url: " + it.url } } }