Appearance
Gradle 简介
什么是 Gradle?
Gradle 是一款基于 JVM 的开源构建自动化工具,专为大型项目设计,兼具灵活性与高性能。它使用 Groovy 或 Kotlin 编写构建脚本(而非 XML),让构建逻辑更加直观和可维护。
Gradle 广泛应用于:
- Java / Kotlin 后端项目
- Android 移动应用(Android 官方构建工具)
- Spring Boot 微服务项目
- Kotlin Multiplatform 跨平台项目
Gradle 的历史
| 年份 | 里程碑 |
|---|---|
| 2007 | Gradle 项目启动,Hans Dockter 创建 |
| 2012 | Gradle 1.0 正式发布 |
| 2013 | Google 将 Gradle 选为 Android 官方构建工具 |
| 2016 | Gradle 3.x,性能大幅提升 |
| 2019 | Gradle 6.x,引入版本目录、依赖锁定 |
| 2021 | Gradle 7.x,配置缓存稳定 |
| 2023 | Gradle 8.x,Kotlin DSL 成为默认 |
为什么选择 Gradle?
相比 Maven 的优势
| 特性 | Gradle | Maven |
|---|---|---|
| 配置语言 | Groovy/Kotlin DSL(代码) | XML(声明式) |
| 构建速度 | 快(增量构建 + 缓存) | 较慢 |
| 灵活性 | 高(可编程) | 低(约定大于配置) |
| 学习曲线 | 中等 | 较低 |
| Android 支持 | 官方支持 | 不支持 |
| 多项目构建 | 优秀 | 一般 |
核心优势
1. 高性能构建
- 增量构建:只重新构建变更的部分
- 构建缓存:复用之前的构建结果
- 并行执行:多任务同时运行
2. 灵活的 DSL
kotlin
// Kotlin DSL 示例 - 直觉性强,IDE 自动补全
tasks.register<Jar>("fatJar") {
archiveClassifier.set("all")
from(sourceSets.main.get().output)
dependsOn(configurations.runtimeClasspath)
from(configurations.runtimeClasspath.get().map { zipTree(it) })
}3. 强大的依赖管理
kotlin
dependencies {
implementation(platform("org.springframework.boot:spring-boot-dependencies:3.2.0"))
implementation("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}4. 丰富的插件生态
- 官方插件:Java、Kotlin、Android、Groovy 等
- 第三方插件:Spring Boot、Shadow、JaCoCo 等
- 自定义插件:用 Kotlin/Groovy/Java 编写
Gradle 能做什么?
- 编译 Java/Kotlin/Groovy/Scala 代码
- 运行单元测试和集成测试
- 生成 JAR/WAR/APK 等构建产物
- 发布到 Maven Central、私有仓库
- 生成 API 文档(Javadoc)
- 代码质量检查(Checkstyle、SpotBugs)
- 代码覆盖率统计(JaCoCo)
- 自动化部署流程
典型应用场景
公司 Java 微服务项目
├── 统一依赖版本管理(版本目录)
├── 多模块构建(auth-service、order-service、common-lib)
├── Spring Boot 打包部署
├── CI/CD 流水线集成(GitHub Actions)
└── 代码质量门禁(测试覆盖率 ≥ 80%)下一步
- 了解 核心概念 - Project、Task、Plugin、Lifecycle
- 开始 安装 Gradle - 配置本地开发环境
- 参考 Gradle vs Maven 对比 - 做出技术选型决策