Skip to content

构建质量门禁 (Spotless)

源:Spotless GitHub

代码审查(CR)不应该浪费在纠正“括号位置”、“空格缩进”这种琐事上。Spotless 允许你通过 Gradle 强制执行统一的代码格式。

1. 添加插件

kotlin
plugins {
    id("com.diffplug.spotless") version "6.25.0"
}

2. 配置规则 (Kotlin & XML)

kotlin
spotless {
    kotlin {
        target("**/*.kt")
        ktlint("1.0.1") // 使用官方 ktlint
        trimTrailingWhitespace()
        endWithNewline()
    }
    format("xml") {
        target("**/*.xml")
        indentWithSpaces(4)
        trimTrailingWhitespace()
    }
}

3. 常用命令

  • ./gradlew spotlessCheck: 检查代码是否符合规范(CI 必备)。
  • ./gradlew spotlessApply: 魔法命令。自动修复所有格式问题。

4. 挂载到 Git Hook (进阶)

你可以编写一个简单的 Gradle 任务,在每次 git commit 前自动运行 spotlessApply

kotlin
tasks.register("installGitHooks", Copy::class) {
    from(file("scripts/pre-commit"))
    into(file(".git/hooks"))
}

团队协作建议

spotlessCheck 设为 CI 的第一步。如果代码格式不对,直接拒绝合并,迫使开发者在本地运行 spotlessApply