Add code quality plugins

version-catalog-update and spotless
This commit is contained in:
Christian Basler
2026-01-29 12:11:40 +01:00
parent 0cf9d36d8c
commit 9930af5fbc
2 changed files with 24 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
import com.android.build.gradle.internal.lint.AndroidLintTask import com.android.build.gradle.internal.lint.AndroidLintTask
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import nl.littlerobots.vcu.plugin.resolver.VersionSelectors
import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
import org.sonarqube.gradle.SonarTask import org.sonarqube.gradle.SonarTask
@@ -8,13 +8,14 @@ plugins {
alias(libs.plugins.versions) alias(libs.plugins.versions)
alias(libs.plugins.sonarqube) alias(libs.plugins.sonarqube)
alias(libs.plugins.kotlin.kover) alias(libs.plugins.kotlin.kover)
alias(libs.plugins.spotless)
alias(libs.plugins.android.application) apply false alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false alias(libs.plugins.android.library) apply false
alias(libs.plugins.compose) apply false alias(libs.plugins.compose) apply false
alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.android) apply false
} }
sonar { sonar {
@@ -45,17 +46,26 @@ tasks.withType<KotlinJvmCompile>().configureEach {
} }
} }
tasks.withType<DependencyUpdatesTask> { spotless {
rejectVersionIf { kotlin {
isNonStable(candidate.version) && !isNonStable(currentVersion) target("**/*.kt")
targetExclude("**/build/**", "**/.gradle/**")
// ktlint("1.5.0")
diktat("1.0.1")
}
kotlinGradle {
target("**/*.gradle.kts")
targetExclude("**/build/**", "**/.gradle/**")
ktlint("1.5.0")
} }
} }
fun isNonStable(version: String): Boolean { versionCatalogUpdate {
return version.contains("dev", ignoreCase = true) sortByKey = false
|| version.contains("alpha", ignoreCase = true) keep {
|| version.contains("beta", ignoreCase = true) keepUnusedVersions = true
|| version.contains("RC", ignoreCase = true) }
versionSelector(VersionSelectors.STABLE)
} }
subprojects { subprojects {

View File

@@ -33,13 +33,15 @@ logging-slf4j = { module = "org.slf4j:slf4j-simple", version = "2.0.17" }
logging = ["logging-jvm", "logging-slf4j"] logging = ["logging-jvm", "logging-slf4j"]
[plugins] [plugins]
versions = { id = "com.github.ben-manes.versions", version = "0.53.0" }
android-application = { id = "com.android.application", version.ref = "agp" } android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" } android-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
compose = { id = "org.jetbrains.compose", version = "1.10.0" } compose = { id = "org.jetbrains.compose", version = "1.10.0" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } versions = { id = "nl.littlerobots.version-catalog-update", version = "1.0.1" }
# Code Analysis Tools and Linters
sonarqube = { id = "org.sonarqube", version = "7.2.2.6593" } sonarqube = { id = "org.sonarqube", version = "7.2.2.6593" }
spotless = { id = "com.diffplug.spotless", version = "8.2.0" }
kotlin-kover = { id = "org.jetbrains.kotlinx.kover", version = "0.9.4" } kotlin-kover = { id = "org.jetbrains.kotlinx.kover", version = "0.9.4" }