安装
官网寻找资源 https://gradle.org/releases/ 红框部分得到下载链接
在Ubuntu环境下,使用wget https://downloads.gradle.org/distributions/gradle-3.4.1-bin.zip
下载gradle
根据Gradle官方推荐,我们将安装包的内容解压至想要的路径(千万不要放在高权限路径)。sudo unzip -d /home/lisheng/tools/gradle gradle-3.4.1-bin.zip
修改环境变量
sudo vim /etc/profile
1 | PATH=$PATH:/home/lisheng/tools/gradle/gradle-3.4.1/bin |
配置生效
source /etc/profile
输入gradle -v检查gradle是否安全完成,以及查看其版本号。
使用,直接创建gradle项目即可
wrapper
当我们平时使用gradle来构建项目的时候,可以现在电脑上安装gradle,在配置环境变量之后就能正常使用了
不过当我们把项目分享给一个电脑上没安装gradle的人时,整体的项目构建还需要配置,显得麻烦。
由此就有了今天的主角:gradle wrapper 一个gradle的封装体,即使电脑上没有安装gradle也能构建。
初衷是因为gradle处于快速迭代阶段,经常发布新版本,如果我们的项目直接去引用,那么更改版本等会变得无比麻烦。而且每个项目又有可能用不一样的gradle版本,这样去手动配置每一个项目对应的gradle版本就会变得麻烦,gradle的引入本来就是想让大家构建项目变得轻松,如果这样的话,岂不是又增加了新的麻烦?所以android想到了包装,引入gradle-wrapper,通过读取配置文件中gradle的版本,为每个项目自动的下载和配置gradle,就是这么简单。
gradle建议开发者为每一个项目创建wrapper,以便其他人在没有gradle环境的机器上运行该项目。
如何创建wrapper呢?使用命令:
1 | gradle wrapper |
目录下会生成以下目录结构
Project-name/
gradlew
gradlew.bat
gradle/wrapper/
gradle-wrapper.jar
gradle-wrapper.properties
因为就像wrapper本身的意义,gradle命令行也是善变的,所以wrapper对命令行也进行了一层封装,使用同一的gradlew命令,wrapper会自动去执行具体版本对应的gradle命令。需要使用gradle wrapper的时候,我们就直接在项目根目录下直接执行gradlew(gradle wrapper的简写), 使用gradlew的方式和gradle一模一样, 例如通过gradlew tasks来查看所有的任务。事实上,执行gradlew命令的时候,gradlew会委托gradle命令来做相应的事情,所以gradlew真的只是一个壳而已。
当执行gradlew的时候,wrapper会检查当前机器是否已经安装了对应版本的gradle,如果安装了那么gradlew就会委托gradle执行用户输入的命令。如果还未安装的话,那么首先会自动帮我们从gradle repository下载安装。当然你也可以在配置文件中指定想要下载的server来替代默认的gradle repo。
那么我们如何去修改要下载的gradle版本呢?通过修改gradle-wrapper.properties文件
1 | #Fri May 17 00:24:36 CST 2019 |
distributionUrl:要下载的gradle地址以及版本,gradle-wrapper会去wrapper/list目录下查找,如果没有对应版本的gradle就调用url资源采取下载
gradle的3种版本:
gradle-xx-all.zip是完整版,包含了各种二进制文件,源代码文件,和离线的文档。例如,https://services.gradle.org/distributions/gradle-3.1-all.zip
gradle-xx-bin.zip是二进制版,只包含了二进制文件(可执行文件),没有文档和源代码。例如,https://services.gradle.org/distributions/gradle-3.1-bin.zip
gradle-xx-src.zip是源码版,只包含了Gradle源代码,不能用来编译你的工程。例如,https://services.gradle.org/distributions/gradle-3.1-src.zip
gradle-wrapper.properties各项属性的整体含义,如下:
去 https://services.gradle.org/distributions/gradle-3.1-bin.zip 下载gradle的3.1版本,只包含binary的版本。
下载的gradle-3.1-bin.zip存放到C:\Users<user_name>.gradle\wrapper\dists目录中。(注:具体还有2级目录,即全路径为C:\Users<user_name>.gradle\wrapper\dists\gradle-3.1-bin<url-hash>\,gradle-3.1-bin目录是根据下载的gradle的文件名来定的,
目录是根据distribution url路径字符串计算md5值得来的 解压gradle-3.1-bin.zip,将解压后的文件存放到C:\Users<user_name>.gradle\wrapper\dists中。(注:具体还有2级目录,同上)