概述
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仍然会去下载所需版本.