第十章:Gradle Wrapper

10.1 是什么?为什么要用?

Gradle Wrapper(gradlew)和你已经有的mvnw是同一个东西:

  • 项目自带指定版本的 Gradle,不依赖机器上安装的版本
  • 团队成员直接.\gradlew build就能用,不用提前安装 Gradle
  • CI/CD 服务器同样不需要预装 Gradle

结论:生产项目统一用.\gradlew,不要用全局的gradle


10.2 初始化 Wrapper(一次性操作)

在项目根目录执行(需要已安装全局 Gradle):

gradle wrapper--gradle-version 7.6.4--distribution-typebin

执行后生成四个文件,全部提交到 Git:

gradlew ← Linux/Mac 用 gradlew.bat ← Windows 用 gradle/wrapper/gradle-wrapper.jar ← Wrapper 核心 gradle/wrapper/gradle-wrapper.properties ← 版本配置

之后团队其他成员不需要安装 Gradle,直接用:

.\gradlew clean build-x test

10.3 gradle-wrapper.properties 说明

# gradle/wrapper/gradle-wrapper.properties distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists # 这行是核心:指定 Gradle 版本 distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists

国内网络慢?换腾讯云镜像:

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.6.4-bin.zip

10.4 升级 Gradle 版本

# 升级到指定版本.\gradlew wrapper--gradle-version 8.5# 升级后把修改提交到 Gitgit add gradle/wrapper/gradle-wrapper.properties git commit-m"chore: upgrade Gradle to 8.5"

10.5 gradle.properties 性能配置

在项目根目录新建gradle.properties,加上这几行,构建会快很多:

# gradle.properties # JVM 内存(大项目必加,默认内存太小) org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 # 守护进程(默认开,显式声明) org.gradle.daemon=true # 并行构建(多模块项目有效) org.gradle.parallel=true # 构建缓存(clean 后也能利用缓存) org.gradle.caching=true

10.6 本地 Gradle 缓存位置

首次运行.\gradlew会自动下载 Gradle 到:

~/.gradle/wrapper/dists/gradle-7.6.4-bin/ ← Gradle 本体 ~/.gradle/caches/ ← 依赖缓存

下载一次之后,同版本的其他项目不会重复下载。

➡️ 下一章:构建提速