沉梦手记 沉梦手记
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 数据库基础
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • 网络通信
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 前端基础
  • Vue
  • React
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 运维与部署
  • 音视频处理
  • 随笔
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 数据库基础
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • 网络通信
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 前端基础
  • Vue
  • React
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 运维与部署
  • 音视频处理
  • 随笔
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • 开发工具篇

    • idea相关

    • 玩转Git

    • 构建工具

      • Maven相关

      • Gradle相关

        • Gradle简介
        • Gradle安装与项目结构
        • Gradle构建脚本详解
        • Gradle依赖管理
        • Gradle常用命令
          • 基础构建命令
            • 命令执行顺序
          • Spring Boot 专属命令
          • 查看 Task
            • 列出所有 Task
            • 查看某个 Task 的详情
          • 依赖分析命令
          • 项目信息命令
          • 常用参数
            • 跳过测试
            • 传入属性
            • 强制刷新依赖
          • 常用组合命令
          • 多模块项目命令
          • Gradle 构建生命周期
            • 1. 初始化阶段(Initialization)
            • 2. 配置阶段(Configuration)
            • 3. 执行阶段(Execution)
          • Gradle Daemon
            • Daemon 的工作原理
            • Daemon 相关命令
            • Daemon 配置
          • 构建加速技巧
            • 1. 并行构建
            • 2. 构建缓存
            • 3. 配置按需
            • 4. 增大 JVM 内存
            • 5. 一键开启所有加速
          • 获取帮助
          • Maven → Gradle 命令速查表
          • 学习参考
        • Gradle多项目构建
        • Gradle进阶与实战
    • 前端工具

    • 测试工具

    • AI工具

  • 工具库篇

  • 开发技巧篇

  • 工具类系列

  • 运维与部署

  • 音视频处理

  • 随笔

  • 开发日常
  • 开发工具篇
  • 构建工具
  • Gradle相关
沉梦听雨
2026-10-30
目录

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
1
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'
1
2
3
4
5
6
7
8

# 查看 Task

# 列出所有 Task

# 列出主要 Task(按 group 分组)
gradlew tasks

# 列出所有 Task(包括内部 Task)
gradlew tasks --all

# 按关键词过滤
gradlew tasks --group build
1
2
3
4
5
6
7
8

# 查看某个 Task 的详情

gradlew help --task bootRun
1

输出示例:

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
1
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
1
2
3
4
5

# 项目信息命令

命令 说明
gradlew projects 列出所有项目(多模块)
gradlew properties 列出项目所有属性
gradlew components 列出项目的组件信息
# 查看多模块项目结构
gradlew projects

# 输出示例:
# Root project 'interview-guide'
# +--- Project ':app'
1
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
1
2
3
4
5

Gradle 没有 Maven 的 -DskipTests,用 -x test 排除测试 Task 即可。

# 传入属性

# 传入项目属性
gradlew build -Penv=prod

# 传入系统属性
gradlew bootRun -Dspring.profiles.active=prod
1
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')
}
1
2
3
4
5
6
7
8

# 强制刷新依赖

# 强制重新下载依赖
gradlew build --refresh-dependencies
1
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
1
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
1
2
3

重要:配置阶段的代码每次构建都会执行(无论运行哪个 Task)。因此不要在配置阶段写耗时操作,耗时逻辑必须放在 doFirst / doLast 中。

# Gradle Daemon

Gradle 默认使用 Daemon 进程来加速构建。Daemon 是一个常驻后台的 JVM 进程,避免每次构建都启动新 JVM。

# Daemon 的工作原理

第一次构建:启动 Daemon → 执行构建 → Daemon 保持运行
后续构建:复用 Daemon → 直接执行构建(省去 JVM 启动时间)
1
2

# Daemon 相关命令

# 查看所有 Daemon 状态
gradlew --status

# 停止所有 Daemon
gradlew --stop

# 本次构建不使用 Daemon
gradlew build --no-daemon
1
2
3
4
5
6
7
8

# Daemon 配置

在 gradle.properties 中配置:

# 启用 Daemon(默认已启用)
org.gradle.daemon=true
# Daemon 空闲超时时间(毫秒),默认 3 小时
org.gradle.daemon.idletimeout=10800000
1
2
3
4

# 构建加速技巧

# 1. 并行构建

# gradle.properties
org.gradle.parallel=true
1
2

或命令行指定:

gradlew build --parallel
1

多模块项目效果明显,无依赖的模块会并行构建。

# 2. 构建缓存

# gradle.properties
org.gradle.caching=true
1
2

# 3. 配置按需

# gradle.properties
org.gradle.configureondemand=true
1
2

只配置参与构建的模块,跳过无关模块的配置阶段。

# 4. 增大 JVM 内存

# gradle.properties
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
1
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
1
2
3
4
5
6

# 获取帮助

# 查看帮助
gradlew -h
gradlew help

# 查看可用 Task
gradlew tasks

# 查看某 Task 帮助
gradlew help --task <taskName>
1
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

# 学习参考

  • Gradle 命令行指南 (opens new window)
  • Gradle 构建生命周期 (opens new window)
  • Gradle Daemon (opens new window)
上次更新: 2026/11/4 08:44:38
Gradle依赖管理
Gradle多项目构建

← Gradle依赖管理 Gradle多项目构建→

Theme by Vdoing | Copyright © 2023-2026 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式