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.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.tasks.KotlinJvmCompile
import org.sonarqube.gradle.SonarTask
@@ -8,13 +8,14 @@ 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
alias(libs.plugins.kotlin.android) apply false
}
sonar {
@@ -45,17 +46,26 @@ tasks.withType<KotlinJvmCompile>().configureEach {
}
}
tasks.withType<DependencyUpdatesTask> {
rejectVersionIf {
isNonStable(candidate.version) && !isNonStable(currentVersion)
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")
}
}
fun isNonStable(version: String): Boolean {
return version.contains("dev", ignoreCase = true)
|| version.contains("alpha", ignoreCase = true)
|| version.contains("beta", ignoreCase = true)
|| version.contains("RC", ignoreCase = true)
versionCatalogUpdate {
sortByKey = false
keep {
keepUnusedVersions = true
}
versionSelector(VersionSelectors.STABLE)
}
subprojects {

View File

@@ -33,13 +33,15 @@ logging-slf4j = { module = "org.slf4j:slf4j-simple", version = "2.0.17" }
logging = ["logging-jvm", "logging-slf4j"]
[plugins]
versions = { id = "com.github.ben-manes.versions", version = "0.53.0" }
android-application = { id = "com.android.application", 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-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
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" }
spotless = { id = "com.diffplug.spotless", version = "8.2.0" }
kotlin-kover = { id = "org.jetbrains.kotlinx.kover", version = "0.9.4" }