唠唠gradle

哈喽~爱瑞八迪~,本小仙女我又来了,事情是酱紫的,由于我工作至今嘛,到哪里都有同组小锅锅罩着我,同样的任务分配都是简单的给我,有啥问题都是各种死皮赖脸的请教,所以至今为止,都没碰上过啥大问题。but!不幸的是,同组小哥哥近期无情的抛弃了偶,而公司并不打算新招人,所以就变成了我一渣在扛项目。那么问题来了,啥各种问题都碰到了,真是超级想死,近期项目处于上线阶段,有空理理我在开发中遇到的一些问题,所以,今天我们就先来说说gradle。

每次项目报和gradle有关的提示或者错误,我都一脸懵逼,所以,首先我们从概念开始理解一下gradle。

1.Gradle:是个构建系统,能够简化你的编译、打包、测试过程。熟悉Java的同学,可以把Gradle类比成Maven。

2.Gradle Wrapper:作用是简化Gradle本身的安装、部署。不同版本的项目可能需要不同版本的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper帮你搞定这些事情。Gradle Wrapper是Gradle项目的一部分。

3.Android Plugin for Gradle:是一堆适合Android开发的Gradle插件的集合,主要由Google的Android团队开发,Gradle不是Android的专属构建系统,但是有了Android Plugin for Gradle的话,你会发现使用Gradle构建Android项目尤其的简单。

gradle-wrapper.properties

这个是我项目develop中的gradle-wrapper.properties,也就是上面的概念2,这个文件在你新建的时候都会默认给出。这边划横线的部分distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip告诉我们的是gradle的版本,并且,从https://services.gradle.org/distributions/gradle-4.1-all.zip下载。这边的几个默认路径我们一般都不会去进行修改,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。

那么

settings-Gradle

Setting里面的Gradle这边的东西又都是些什么鬼?跟上面说的有什么关系?且听我慢慢道来。这边选中打了1的地方,use default gradle wrapper(recommended),就是我们上面的distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip。所以,如果你不想下载,而想用本地的gradle的话,可以选择第二个选项,Use local gradle distribution,gradle home就是你本地下载的gradle的地址。

gradle wrapper搞清楚之后,剩下的东西就好理解了,因为Gradle对应版本下载完成之后,Gradle Wrapper的使命基本完成了,Gradle会读取build.gradle文件,该文件中指定了该项目需要的Android Plugin for Gradle版本是什么,从哪里下载该版本的Android Plugin for Gradle。如下图所示:

build.gradle

build.gradle文件中dependencies下的gradle其实是gradle插件。

值得注意的是,android stduio的版本、Gradle的版本和gradle插件的版本,他们是有一定的关系的,所以会存在三者不匹配而产生的报错问题,所以有些github上下载下来的demo在导入自己的android studio时会报错。无论是导入项目报错,还是你更新了三个版本里面的一项产生的报错,你都应该遵照着上面的概念去修改。

最后,附上一张gradle版本和插件版本的对应:

gradle版本和插件的对应表

如更新,参照官网链接:https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin

打完收工!!!

你可能感兴趣的:(唠唠gradle)