执行任何 Gradle 构建的推荐方式是使用 Gradle Wrapper。

gradle basic 2

Wrapper 脚本调用声明的 Gradle 版本,并在必要时提前下载。

wrapper workflow

Wrapper 可用作 gradlewgradlew.bat 文件。

Wrapper 提供以下好处

  • 将项目标准化到给定的 Gradle 版本。

  • 为不同的用户提供相同的 Gradle 版本。

  • 为不同的执行环境(IDE、CI 服务器等)提供 Gradle 版本。

使用 Gradle Wrapper

始终建议使用 Wrapper 执行构建,以确保构建执行的可靠性、可控性和标准化。

根据操作系统,您运行 gradlewgradlew.bat 而不是 gradle 命令。

典型的 Gradle 调用

$ gradle build

在 Linux 或 OSX 机器上运行 Wrapper

$ ./gradlew build

在 Windows PowerShell 上运行 Wrapper

$ .\gradlew.bat build

命令在 Wrapper 所在的同一目录中运行。如果要在不同的目录中运行命令,则必须提供 Wrapper 的相对路径

$ ../gradlew build

以下控制台输出演示了在 Windows 机器上,在命令提示符 (cmd) 中,针对基于 Java 的项目使用 Wrapper 的情况

$ gradlew.bat build

Downloading https://services.gradle.org/distributions/gradle-5.0-all.zip
.....................................................................................
Unzipping C:\Documents and Settings\Claudia\.gradle\wrapper\dists\gradle-5.0-all\ac27o8rbd0ic8ih41or9l32mv\gradle-5.0-all.zip to C:\Documents and Settings\Claudia\.gradle\wrapper\dists\gradle-5.0-al\ac27o8rbd0ic8ih41or9l32mv
Set executable permissions for: C:\Documents and Settings\Claudia\.gradle\wrapper\dists\gradle-5.0-all\ac27o8rbd0ic8ih41or9l32mv\gradle-5.0\bin\gradle

BUILD SUCCESSFUL in 12s
1 actionable task: 1 executed

理解 Wrapper 文件

以下文件是 Gradle Wrapper 的一部分

.
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar  (1)
│       └── gradle-wrapper.properties   (2)
├── gradlew (3)
└── gradlew.bat (4)
1 gradle-wrapper.jar:这是一个小的 JAR 文件,其中包含 Gradle Wrapper 代码。它负责为项目下载和安装正确版本的 Gradle(如果尚未安装)。
2 gradle-wrapper.properties:此文件包含 Gradle Wrapper 的配置属性,例如分发 URL(从哪里下载 Gradle)和分发类型(ZIP 或 TARBALL)。
3 gradlew:这是一个 shell 脚本(基于 Unix 的系统),充当 gradle-wrapper.jar 的包装器。它用于在基于 Unix 的系统上执行 Gradle 任务,而无需手动安装 Gradle。
4 gradlew.bat:这是一个批处理脚本 (Windows),其用途与 gradlew 相同,但在 Windows 系统上使用。
您永远不应更改这些文件。

如果您想查看或更新项目的 Gradle 版本,请使用命令行。不要手动编辑 wrapper 文件

$ ./gradlew --version
$ ./gradlew wrapper --gradle-version 7.2
$ gradlew.bat --version
$ gradlew.bat wrapper --gradle-version 7.2

请查阅 Gradle Wrapper 参考 以了解更多信息。

下一步: 了解 Gradle CLI >>