Android杂谈:Gradle跨平台编译之Wrapper

小龙包.png

我们知道,每个人的电脑可能都不一样。源代码在我这台机器可以编译,说不定在你那台就不能编译。其中一个原因就有可能是彼此gradle版本不一样导致的。gradle Wrapper就是为了克服不同电脑的差异性产生的。原理也很简单,有一个目录记录编译工程需要的gradle版本,在编译前首先检测电脑是否有安装该版本的gradle,如果没有的话,就会自动先从网上下载后再编译。

要生成一个包含Wrapper的工程很简单,只需要在命令行执行一句就可以

 gradle wrapper

执行后会在当前目录生成以下四个文件,gradlew.bat就是window下的脚本文件。运行这个脚本就会开始gradle编译。

Paste_Image.png

编译项目需要的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
url.png

我们来实践一下,把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 中

下载版本.png

然后编译task

Paste_Image.png

OK!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容