Gradle支持Groovy(默认)和Kotlin(推荐)两种DSL:Groovy语法简洁灵活,文件为build.gradle,依赖用闭包声明;Kotlin类型安全、IDE支持好,文件为build.gradle.kts,依赖需函数调用,配置需显式访问属性。

Gradle 支持两种 DSL 脚本语法:Groovy(默认)和 Kotlin(推荐用于新项目)。两者功能一致,但 Kotlin DSL 更类型安全、IDE 支持更好,Groovy 更灵活、语法更简短。
Groovy DSL:简洁灵活,适合快速配置
Groovy 是 Gradle 最早支持的脚本语言,语法动态、表达力强,插件应用和依赖声明非常直观。
- 脚本文件名是 build.gradle(无后缀)
- 闭包是核心语法单元,比如
dependencies { implementation '...' } - 省略括号和 return 是常见写法:
version = '1.0'等价于setVersion('1.0') - 支持直接调用 Java/Groovy API,可嵌入逻辑(如条件判断、循环),但过度使用会降低可读性
Kotlin DSL:类型安全,重构友好
Kotlin DSL 脚本以 build.gradle.kts 为后缀,由 Kotlin 编译器检查,支持自动补全、跳转定义、编译期错误提示。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 依赖声明需用
implementation等函数调用,不是 Groovy 那样的“属性式”写法 - 配置块用 lambda 表达式,例如
dependencies { implementation("junit:junit:4.13.2") } - 访问 Project 属性或方法需显式调用(如
project.version或version.set("1.0")),避免隐式委托带来的歧义 - 启用
gradle.properties中的org.gradle.configuration-cache=true可提升构建性能,Kotlin DSL 对其兼容性更好
通用结构:无论哪种 DSL,都围绕几个关键块
所有 Gradle 构建脚本都按相似逻辑组织,区别只在语法形式。
- plugins {}:声明插件(id "java" 或 id("org.jetbrains.kotlin.jvm") version "1.9.20")
- group / version / repositories {}:设置项目元数据与依赖源
- dependencies {}:定义 compileOnly、implementation、testImplementation 等依赖配置
-
tasks {} 或 tasks.register():创建或配置任务(Kotlin DSL 推荐用
register实现延迟配置)
迁移建议:从 Groovy 切换到 Kotlin DSL
Gradle 提供了自动化转换工具,但实际迁移需注意细节。
- 运行
gradle init --type kotlin可生成 Kotlin 模板项目 - 用 IDE(IntelliJ IDEA)打开 Groovy 脚本,右键选择 “Convert to Kotlin Script” 可一键转换基础结构
- 自定义闭包逻辑(如动态 task 创建)需重写为 Kotlin 函数或扩展,避免 Groovy 的 delegate 机制误用
- 第三方插件若未标注
@Incubating或明确支持 Kotlin DSL,可能需查阅其文档确认配置方式

















