Gradle之恋(7)-wrapper

概述

很多软件都是先安装后使用,如果软件安装很容易还好,但如果比较复杂就是种负担了,而且还有版本问题:版本不对可能还会造成不可用等情况。Wrapper解决了Gradle在这两方面的问题,而且是Gradle的首选方式,它为持续集成提供了便利条件。
Gradle

添加Wrapper

gradle自带的Init插件有个wrapper任务,该任务可以为你的项目添加wrapper,它有三个参数

  • distribution-type:下载的Gradle类型:ALL或BIN,默认使用BIN,由于包小下载也比较快;有些编辑器比如Android Studio、Intellij IDEA使用ALL,这样可以提供上下文信息;
  • gradle-distribution-url:下载Gradle的地址,默认是当前版本的官方下载地址;
  • version:Gradle的版本,默认是当前执行任务的Gradle的版本;

当执行gradle wrapper则会向项目添加如下资源:
Gradle Wrapper
当然你可以编辑gradle-wrapper.properties改变一些参数如distributionUrl等。

原理

添加了Wrapper就可以使用wrapper来执行Gradle命令了:

  • ./gradlew unix系和Mac系统;
  • gradlew windows系;

当执行gradlew时,它会检测用于wrapper的gradle是否存在,如果时则代理一切gradle的命令,否则去下载Gradle。

下载速度慢的解决

使用gradlew下载gradle比较慢,我们可以使用浏览器等工具下载好gradle的zip包放在本地,在gradle-wrapper.properties文件中配置相对gradle-wrapper.properties的相对路径即可,如:

distributionUrl=../../zip/gradle-3.3-bin.zip

代理下载

可以配置Gradle_User_Home/.gradle/gradle.properties,添加:

systemProp.gradle.wrapperUser=username
systemProp.gradle.wrapperPassword=password

也可以直接配置gradle-wrapper.properties,如:

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

翟前锋 wechat
欢迎订阅我的微信公众号:zhaiqianfeng!