🔧 第一个配置: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 项目的最佳实践:
- 自动化代码质量:ktlint 确保代码风格一致
- 标准化构建流程:clean 任务解决构建问题
- 项目可维护性:团队开发中的重要工具