gradlew 和 gradle命令的区别

定义区别:
Gradlew是包装器,自动下载包装器里定义好的gradle 版本,保证编译环境统一,gradle 是用本地的gradle版本。
对于gradlew,其在Android studio的指定是在gradle/wrapper/gradle-wrapper.properties 中完成的,例如下面的代码即指定app编译的gradle版本为4.1。
#Wed Mar 07 14:24:26 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

复制代码
存放路径不同
对于系统gradle其存放在 ~/.gradle 下面。本系统可在该文件夹下面找到gradle2.12相关的内容。对于gradlew其存放在 ~/.gradlew/wrapper/dists 下面。这个下面有着许多版本的gradle。这些就是gradlew下载下来的gradle版本。
使用gradle版本不同
若你在命令行使用gradlew 那么你使用的是存放在~/.gradlew/wrapper/dists路径下面的,通过在gradle/wrapper/gradle-wrapper.properties文件指定的gradle脚本。而你若使用gradle命令行,那么你使用的是~/.gradle下面的gradle脚本。
验证测试
我在AS 的build.gradle下面放入如下代码。
task hello1 << {
    println 'hello1'
    println GradleVersion.current().toString()
}
复制代码
使用gradlew命令运行task
./gradlew hello1

复制代码
得到
> Task :hello1
hello1
Gradle 4.1

复制代码
而使用gradle命令运行task
gradle hello1
复制代码
得到
   > Minimum supported Gradle version is 3.3. Current version is 2.12.
   
复制代码
这个和我之前分析的一样。说明上面的分析没有问题。
参考资料
  1. https://docs.gradle.org/current/userguide/gradle_wrapper.html
  2. http://saiwei.me/?p=3747
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值