Gradle wrapper的介绍与使用

由来

在使用Android Studio作为IDE开发Android的应用的时候,我们可以直接使用IDE集成的build工具对应用进行编译打包,也可以使用命令行的形式执行gradle命令来做同样的事情,也就是基于gradle来构建android应用的build系统。在需要用到gradle的时候,我们可以在我们的电脑上安装gradle,然后配置好环境变量后就可以使用了。但是当我们把项目分享给电脑上没有gradle的人时,问题就来了。或者我们在一个没有装gradle的server上build的时候也会出现同样的问题。

所以基于此,gradle系统引入了我们今天的主角-gralde wrapper: 一个gradle的封装体。有了gradle wrapper,即便你的机器上没有安装gradle,也可以执行gradle的构建工作了。

创建

想使用gradle wrapper,首先要在你的项目中创建。具体来说就是在build.gradle里面加入类似于下面的task:

// File: build.gradle
task createWrapper(type: Wrapper) {
    gradleVersion = '0.9-preview-1'
}

什么原理? 其实很简单:在生成gradle wrapper的时候指定项目所需要用的gradle版本,这样当别人用gradle wrapper的时候,

然后执行该task: $ gradle createWrapper

就会在项目工程生成以下的文件:

Project-name/
  gradlew
  gradlew.bat
  gradle/wrapper/
    gradle-wrapper.jar
    gradle-wrapper.properties

这些文件构成了我们的gradle wrapper。

需要注意的是:这些文件需要上传到版本控制工具(例如git, svn)的server端。生成这些文件的操作只需要做一次即可。

使用

需要使用gradle wrapper的时候,我们就直接在项目根目录下直接执行gradlew(gradle wrapper的简写), 使用gradlew的方式和gradle一模一样, 例如通过gradlew tasks来查看所有的任务。事实上,执行gradlew命令的时候,gradlew会委托gradle命令来做相应的事情,所以gradlew真的只是一个壳而已。

当执行gradlew的时候,wrapper会检查当前机器是否已经安装了对应版本的gradle,如果安装了那么gradlew就会委托gradle执行用户输入的命令。如果还未安装的话,那么首先会自动帮我们从gradle repository下载安装。当然你也可以在配置文件中指定想要下载的server来替代默认的gradle repo。

不过需要说明的是,假如你是用android studio新建的项目,它会自动为新建的工程添加wrapper。也就是你就不必自己再去创建gradle wrapper了,直接在命令行或者你的编译脚本中使用就好了。

使用场景1

编写脚本,调用gradlew来进行项目的每日构建。或者当你想同时编译多个项目的时候,也可以通过此形式轻松实现,这一点上会比使用Android Studio方便不少。

使用场景2

用于编译第三方应用:当我们从github或者其他地方拿到一个其他人的Android应用的项目代码的时候,假如该项目也是基于Android studio或者gradle开发的,那么我们也可以借助gradlew进行编译从而生成apk。一般来说只需要两条命令就搞定了:

gradlew clean
gradlew build

怎么样,是不是很方便?免去了很多实用Android导入、编译带来的痛苦了。

原文地址:http://zhixinliu.com/2015/03/25/2015-03-25-gradle-wrapper/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值