我们知道,每个人的电脑可能都不一样。源代码在我这台机器可以编译,说不定在你那台就不能编译。其中一个原因就有可能是彼此gradle版本不一样导致的。gradle Wrapper就是为了克服不同电脑的差异性产生的。原理也很简单,有一个目录记录编译工程需要的gradle版本,在编译前首先检测电脑是否有安装该版本的gradle,如果没有的话,就会自动先从网上下载后再编译。
要生成一个包含Wrapper的工程很简单,只需要在命令行执行一句就可以
gradle wrapper
执行后会在当前目录生成以下四个文件,gradlew.bat就是window下的脚本文件。运行这个脚本就会开始gradle编译。
编译项目需要的gradle版本定义在gradle\wrapper\gradle-wrapper.properties文件里面,这个文件是自动生成的。修改gradle版本可以修改distributionUrl,编译时如果没有这个版本的gradle就会从这个url下载相应的gradle版本。
#Tue Mar 14 20:05:20 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-rc-2-bin.zip
我们来实践一下,把distributionUrl的gradle版本号修改成下面这样。
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-rc-1-bin.zip
然后再搞个build.gradle来编译一番,跑一个task
task hello {
doLast {
println 'Hello, World!'
}
}
在命令行输入gradlew task开始编译,会首先先下载gradle版本。下载的Gradle发行版被存放在目录 $USER_HOME/.gradle/wrapper/dists 中
然后编译task
OK!!!!