Gradle常用命令
# Gradle 常用命令
Gradle 命令以 gradlew(Wrapper)或 gradle(本地安装)开头,后接 Task 名称或参数。本文以 gradlew 形式给出,Windows 直接用 gradlew,Linux/Mac 用 ./gradlew。
# 基础构建命令
| 命令 | 说明 | Maven 对应 |
|---|---|---|
gradlew clean | 清理 build/ 目录 | mvn clean |
gradlew build | 完整构建(编译 + 测试 + 打包 + 检查) | mvn package |
gradlew assemble | 编译并打包(不运行测试) | mvn package -DskipTests |
gradlew compileJava | 编译主源代码 | mvn compile |
gradlew compileTestJava | 编译测试源代码 | mvn test-compile |
gradlew test | 运行单元测试 | mvn test |
gradlew check | 运行所有检查(测试 + 代码分析等) | mvn verify |
gradlew jar | 打包成 JAR | mvn package |
gradlew bootJar | 打包可执行 Spring Boot JAR | spring-boot:repackage |
gradlew bootRun | 本地运行 Spring Boot 应用 | spring-boot:run |
gradlew build是最常用的命令,它会依次执行compileJava → compileTestJava → test → jar,类似mvn clean package。
# 命令执行顺序
Gradle 的 Task 之间有依赖关系,执行一个 Task 会自动先执行它依赖的 Task:
gradlew build
→ compileJava
→ processResources
→ classes
→ compileTestJava
→ processTestResources
→ testClasses
→ test
→ jar
2
3
4
5
6
7
8
9
这与 Maven 的生命周期阶段自动链式执行类似。
# Spring Boot 专属命令
应用 org.springframework.boot 插件后,会获得以下 Task:
| 命令 | 说明 |
|---|---|
gradlew bootRun | 本地启动 Spring Boot 应用 |
gradlew bootJar | 打包可执行 JAR(包含内嵌容器) |
gradlew bootBuildImage | 构建 OCI/Docker 镜像 |
gradlew bootStartScripts | 生成启动脚本 |
interview-guide 项目运行应用:
# 本地启动
gradlew bootRun
# 打包
gradlew bootJar
# 指定配置文件启动
gradlew bootRun --args='--spring.profiles.active=dev'
2
3
4
5
6
7
8
# 查看 Task
# 列出所有 Task
# 列出主要 Task(按 group 分组)
gradlew tasks
# 列出所有 Task(包括内部 Task)
gradlew tasks --all
# 按关键词过滤
gradlew tasks --group build
2
3
4
5
6
7
8
# 查看某个 Task 的详情
gradlew help --task bootRun
输出示例:
Detailed task information for bootRun
Path
:app:bootRun
Type
org.springframework.boot.gradle.tasks.run.BootRun
Description
Runs this project as a Spring Boot application.
Group
application
2
3
4
5
6
7
8
9
10
11
12
13
# 依赖分析命令
| 命令 | 说明 | Maven 对应 |
|---|---|---|
gradlew dependencies | 查看完整依赖树 | mvn dependency:tree |
gradlew dependencies --configuration runtimeClasspath | 查看运行时依赖 | - |
gradlew dependencies --configuration compileClasspath | 查看编译时依赖 | - |
gradlew dependencyInsight --dependency <依赖> | 查看某依赖的来源和路径 | mvn dependency:tree -Dincludes=... |
gradlew buildEnvironment | 查看构建脚本自身的依赖 | - |
# 查看 app 子项目的依赖树
gradlew :app:dependencies
# 查看 PostgreSQL 依赖的来源
gradlew :app:dependencyInsight --dependency org.postgresql:postgresql --configuration runtimeClasspath
2
3
4
5
# 项目信息命令
| 命令 | 说明 |
|---|---|
gradlew projects | 列出所有项目(多模块) |
gradlew properties | 列出项目所有属性 |
gradlew components | 列出项目的组件信息 |
# 查看多模块项目结构
gradlew projects
# 输出示例:
# Root project 'interview-guide'
# +--- Project ':app'
2
3
4
5
6
# 常用参数
| 参数 | 说明 | Maven 对应 |
|---|---|---|
-x <task> | 排除某个 Task 不执行 | - |
--exclude-task <task> | 同上 | - |
-P<name>=<value> | 传入项目属性 | -D<name>=<value> |
-D<name>=<value> | 传入系统属性 | -D<name>=<value> |
--no-daemon | 不使用 Daemon 进程 | - |
--offline | 离线模式,不访问网络 | -o |
--refresh-dependencies | 强制刷新依赖缓存 | -U |
--parallel | 并行构建 | -T |
--build-cache | 启用构建缓存 | - |
--info | 输出详细信息 | -X |
--debug | 输出调试信息 | - |
--quiet / -q | 静默模式 | -q |
--stacktrace | 输出完整异常栈 | -e |
--continue | 遇到失败继续执行后续 Task | - |
--dry-run | 只打印 Task 执行计划,不实际执行 | - |
# 跳过测试
# 跳过测试执行(仍编译测试代码)
gradlew build -x test
# 跳过测试执行和编译
gradlew build -x test -x compileTestJava
2
3
4
5
Gradle 没有 Maven 的
-DskipTests,用-x test排除测试 Task 即可。
# 传入属性
# 传入项目属性
gradlew build -Penv=prod
# 传入系统属性
gradlew bootRun -Dspring.profiles.active=prod
2
3
4
5
在 build.gradle 中接收:
// 接收项目属性
def env = project.findProperty('env') ?: 'dev'
println "当前环境: ${env}"
// 接收系统属性
tasks.named('bootRun') {
systemProperty 'spring.profiles.active', System.getProperty('spring.profiles.active', 'dev')
}
2
3
4
5
6
7
8
# 强制刷新依赖
# 强制重新下载依赖
gradlew build --refresh-dependencies
2
# 常用组合命令
# 清理并构建
gradlew clean build
# 清理并跳过测试构建
gradlew clean build -x test
# 清理并打包可执行 JAR
gradlew clean bootJar
# 离线构建(不访问网络)
gradlew build --offline
# 并行构建(多模块)
gradlew build --parallel
# 查看依赖树
gradlew dependencies --configuration runtimeClasspath
# 只构建指定子项目
gradlew :app:build
# 传入环境变量启动
gradlew bootRun -Dspring.profiles.active=dev
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 多模块项目命令
| 命令 | 说明 |
|---|---|
gradlew :app:build | 只构建 app 子项目 |
gradlew :app:bootRun | 运行 app 子项目 |
gradlew :app:test | 只测试 app 子项目 |
gradlew :app:dependencies | 查看 app 子项目的依赖树 |
Gradle 用
:项目名:task的路径形式指定子项目的 Task,类似 Maven 的-pl module。
# Gradle 构建生命周期
Gradle 构建分为三个阶段:
# 1. 初始化阶段(Initialization)
读取 settings.gradle,创建 Project 对象。
# 2. 配置阶段(Configuration)
执行所有 build.gradle 脚本,构建 Task 依赖图。此阶段会执行脚本中的所有顶层代码和 Task 的配置块。
# 3. 执行阶段(Execution)
按依赖顺序执行选定的 Task 及其依赖的 Task。
初始化阶段 配置阶段 执行阶段
settings.gradle → build.gradle → task 执行
创建 Project 构建 Task 依赖图 doFirst / doLast
2
3
重要:配置阶段的代码每次构建都会执行(无论运行哪个 Task)。因此不要在配置阶段写耗时操作,耗时逻辑必须放在
doFirst/doLast中。
# Gradle Daemon
Gradle 默认使用 Daemon 进程来加速构建。Daemon 是一个常驻后台的 JVM 进程,避免每次构建都启动新 JVM。
# Daemon 的工作原理
第一次构建:启动 Daemon → 执行构建 → Daemon 保持运行
后续构建:复用 Daemon → 直接执行构建(省去 JVM 启动时间)
2
# Daemon 相关命令
# 查看所有 Daemon 状态
gradlew --status
# 停止所有 Daemon
gradlew --stop
# 本次构建不使用 Daemon
gradlew build --no-daemon
2
3
4
5
6
7
8
# Daemon 配置
在 gradle.properties 中配置:
# 启用 Daemon(默认已启用)
org.gradle.daemon=true
# Daemon 空闲超时时间(毫秒),默认 3 小时
org.gradle.daemon.idletimeout=10800000
2
3
4
# 构建加速技巧
# 1. 并行构建
# gradle.properties
org.gradle.parallel=true
2
或命令行指定:
gradlew build --parallel
多模块项目效果明显,无依赖的模块会并行构建。
# 2. 构建缓存
# gradle.properties
org.gradle.caching=true
2
# 3. 配置按需
# gradle.properties
org.gradle.configureondemand=true
2
只配置参与构建的模块,跳过无关模块的配置阶段。
# 4. 增大 JVM 内存
# gradle.properties
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
2
# 5. 一键开启所有加速
# gradle.properties
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
2
3
4
5
6
# 获取帮助
# 查看帮助
gradlew -h
gradlew help
# 查看可用 Task
gradlew tasks
# 查看某 Task 帮助
gradlew help --task <taskName>
2
3
4
5
6
7
8
9
# Maven → Gradle 命令速查表
| 功能 | Maven | Gradle |
|---|---|---|
| 清理 | mvn clean | gradlew clean |
| 编译 | mvn compile | gradlew compileJava |
| 测试 | mvn test | gradlew test |
| 打包 | mvn package | gradlew build 或 gradlew jar |
| 安装到本地仓库 | mvn install | gradlew publishToMavenLocal |
| 部署到远程仓库 | mvn deploy | gradlew publish |
| 跳过测试 | mvn package -DskipTests | gradlew build -x test |
| 依赖树 | mvn dependency:tree | gradlew dependencies |
| 强制更新依赖 | mvn build -U | gradlew build --refresh-dependencies |
| 离线模式 | mvn build -o | gradlew build --offline |
| 指定模块 | mvn build -pl module | gradlew :module:build |
| 激活 Profile | mvn build -P prod | gradlew build -Penv=prod |
| 运行 Spring Boot | mvn spring-boot:run | gradlew bootRun |
| 打包 Spring Boot | mvn package | gradlew bootJar |