gradlew:在Android studio的指定是在gradle/wrapper/gradle-wrapper.properties 中
gradle:对于系统gradle其存放在 ~/.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.
这个和我之前分析的一样。说明上面的分析没有问题。
参考资料
- https://docs.gradle.org/current/userguide/gradle_wrapper.html
- http://saiwei.me/?p=3747