[Gradle中文教程系列]-跟我学Gradle-15:团队协作 - 使用Gradle Wrapper来统一构建版本

概述

Gradle Wrapper(Gradle包装器)
作用

  • 统一团队gradle版本,解决因团队gradle版本混乱导致构建失败等问题
  • 自动下载安装gradle,使gradle萌新可以0配置快速进入构建

添加Gradle wrapper支持

可以通过执行gradle wrapper任务来添加wrapper支持,wrapper任务时内置任务,无需额外配置。

通过内置任务来添加wrapper支持.

gradle wrapper --gradle-version 3.5
:wrapper

BUILD SUCCESSFUL

Total time: 1 secs

通过定义wrapper任务来添加wrapper支持.

task wrapper(type: Wrapper) {
    gradleVersion = '3.5'
}
参数 参数说明
--gradle-version 指定要采用的gradle版本,这里如果不指定,gradle会依据执行wrapper任务时所用的gradle版本来下载gradle
--distribution-type 指定要采用的gradle发行包版本,默认下载最小化二进制包
--gradle-distribution-url 指定gradle发行包的下载地址(鉴于GFW,团队使用最好放在内部服务器上)

当然,还有更多的参数可以指定 可以查阅 Gradle wrapper DSL 来了解更多使用.

Gradle Wrapper 文件结构

your-project/
  gradlew    /*适用于mac/linux的gradlew文件*/
  gradlew.bat    /*win的gradlew文件*/
  gradle/wrapper/
    gradle-wrapper.jar
    gradle-wrapper.properties  /*gralde-wrapper配置文件,可以指定下载位置等一些参数*/

gradle-wrapper.properties可以配置一些wrapper的默认行为,如发行版本、SHA-256校验码(防止中间人攻击)等

distributionUrl=https://username:password@somehost/path/to/gradle-distribution.zip
distributionSha256Sum=371cb9fbebbe9880d147f59bab36d61eee122854ef8c9ee1ecf12b82368bcf10

使用Wrapper

使用gradle wrapper非常简单,只需要在原有的gradle命令后加个w变成gradlew即可,这里实际上是调用了项目下的gradlew/gradlew.bat脚本.
这里需要注意:gradlew会检查你是否安装了构建所需版本的gradle,如果没有的话,那么会去先下载一份.这意味着即使目标机器安装了gradle,但是版本与所需版本不一致,那么gradlew仍然会去下载所需版本.

你可能感兴趣的:([Gradle中文教程系列]-跟我学Gradle-15:团队协作 - 使用Gradle Wrapper来统一构建版本)