🔧 第一个配置:subprojects 块

subprojects {
    // Apply ktlint formatting to all modules
    apply(plugin = "org.jlleitschuh.gradle.ktlint")
}

作用

  • 批量应用插件:对项目中的所有子模块(subprojects)应用 ktlint 插件
  • 代码格式化:ktlint 是 Kotlin 代码风格检查和自动格式化工具

具体含义

  • subprojects = 遍历项目中所有子模块(比如 app 模块)
  • apply(plugin = "org.jlleitschuh.gradle.ktlint") = 给每个子模块添加 ktlint 插件
  • 效果:所有模块都会有统一的 Kotlin 代码格式检查

实际用途

# 检查代码格式
./gradlew ktlintCheck

# 自动修复格式问题
./gradlew ktlintFormat

🧹 第二个配置:clean 任务

tasks.register("clean", Delete::class) {
    delete(rootProject.buildDir)
}

作用

  • 创建清理任务:注册一个名为 “clean” 的 Gradle 任务
  • 删除构建文件:清除所有编译生成的文件

具体含义

  • tasks.register("clean", Delete::class) = 创建一个删除类型的任务
  • delete(rootProject.buildDir) = 删除根项目的 build 目录
  • 效果:执行 ./gradlew clean 时会删除所有编译产物

实际用途

# 清理所有编译文件(相当于"重置"项目)
./gradlew clean

# 常用组合:先清理,再构建
./gradlew clean build

🎯 为什么需要这些配置?

ktlint 的重要性

  • 团队协作:确保所有开发者写出格式一致的代码
  • 代码质量:自动发现潜在的代码风格问题
  • 自动化:CI/CD 流程中自动检查代码格式

clean 任务的重要性

  • 解决构建问题:当项目出现奇怪错误时,第一步通常是 clean
  • 确保干净构建:删除缓存文件,避免旧文件影响新构建
  • 性能优化:定期清理可以释放磁盘空间

Android 开发中的实际应用

# 遇到奇怪编译错误时的标准流程
./gradlew clean          # 清理
./gradlew ktlintFormat   # 格式化代码  
./gradlew build          # 重新构建

💡 学习要点

这两个配置体现了现代 Android 项目的最佳实践

  1. 自动化代码质量:ktlint 确保代码风格一致
  2. 标准化构建流程:clean 任务解决构建问题
  3. 项目可维护性:团队开发中的重要工具