feat(01-02): scaffold build-logic included build with 5 precompiled plugins
- build-logic/settings.gradle.kts resolves parent catalog via files("../gradle/libs.versions.toml")
- build-logic/build.gradle.kts declares kotlin-dsl + 9 compileOnly asDependency entries
- recipe.quality: Spotless + ktlint + D-11 allWarningsAsErrors safety net (plugins.withId guard)
- recipe.kotlin.multiplatform: D-05 target matrix (androidTarget, iosArm64, iosSimulatorArm64, jvm, wasmJs) + JVM 11/21 split + baseName "ComposeApp" + Koin/Kermit/kotlin-test deps
- recipe.compose.multiplatform: layers on recipe.kotlin.multiplatform (PITFALL #2 avoided) + hot-reload + Compose deps
- recipe.android.application: namespace dev.ulfrx.recipe + findVersion catalog accessor (PITFALL #1)
- recipe.jvm.server: Ktor + Flyway + Postgres with quoted "implementation" configs + cleanDisabled guard
This commit is contained in:
40
build-logic/src/main/kotlin/recipe.quality.gradle.kts
Normal file
40
build-logic/src/main/kotlin/recipe.quality.gradle.kts
Normal file
@@ -0,0 +1,40 @@
|
||||
plugins {
|
||||
id("com.diffplug.spotless")
|
||||
}
|
||||
|
||||
spotless {
|
||||
kotlin {
|
||||
target("src/**/*.kt")
|
||||
targetExclude("**/build/**", "**/generated/**")
|
||||
ktlint()
|
||||
}
|
||||
kotlinGradle {
|
||||
target("*.gradle.kts")
|
||||
ktlint()
|
||||
}
|
||||
format("markdown") {
|
||||
target("*.md", "docs/**/*.md")
|
||||
endWithNewline()
|
||||
trimTrailingWhitespace()
|
||||
}
|
||||
}
|
||||
|
||||
// D-11 redundancy guard: if a module applies recipe.quality alongside a Kotlin plugin
|
||||
// (multiplatform or jvm), ensure allWarningsAsErrors still applies even if the module
|
||||
// build didn't already configure it. Guarded with plugins.withId so this plugin is
|
||||
// safely composable even when applied alone (no KotlinCompilationTask type available
|
||||
// on the classpath until a Kotlin plugin is present).
|
||||
plugins.withId("org.jetbrains.kotlin.multiplatform") {
|
||||
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask<*>>().configureEach {
|
||||
compilerOptions {
|
||||
allWarningsAsErrors.set(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
plugins.withId("org.jetbrains.kotlin.jvm") {
|
||||
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask<*>>().configureEach {
|
||||
compilerOptions {
|
||||
allWarningsAsErrors.set(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user