彻底弄明⽩Gradle相关配置
页面访问升级初识Gradle
Gradle是⼀个基于Apache Ant和Apache Maven概念的项⽬⾃动化建构⼯具。它使⽤⼀种基于Groovy的特定领域语⾔来声明项⽬设置,⽽不是传统的XML。当前其⽀持的语⾔限于Java、Groovy和Scala,计划未来将⽀持更多的语⾔。最新欧洲vodafonewifi
怎么看上⾯都是⼀段很官⽅的解释,对于⼊门的⼈来说简直是⼀个噩梦般的解释(包括以前的我)。那下⾯我就⽤通俗⼀点语⾔说说我的理解。scripture中文翻译
Gradle就是⼯程的管理,帮我们做了依赖,打包,部署,发布,各种渠道的差异管理等⼯作。举个例⼦形容,如果我是⼀个做⼤事的少爷平时管不了这么多⼩事情,那Gradle就是⼀个贴⼼的秘书或者管家,把⼀些杂七杂⼋的⼩事情都帮我们做好了,让我们可以安⼼的打代码,其他事情可以交给管家管。
那有⼈会问,既然⼯作都可以交给他做,为什么还要我们去了解。我想我们要管家做事,也要下达我们的命令,我们必须知道这些命令和管家的喜好才能跟他相处和谐,不然你不知道它的脾性下错命令,那后果可是很严重的。
在以前实习的时候,我还⽤eclipse,那是导⼊⼀个⽹上的下载的module还需要⼀步步的import。但⾃从
⽤了Android Studio后,Gradle 很贴⼼的帮我完成了这个繁杂的⼯作,⽽且往往只需要添加⼀句话,这太神奇了,当时我是这样想的,下⾯我们也会说到这个。
分析
下⾯我就⽤⾃⼰项⽬中⽤到的Gradle慢慢分析:
我们看到,每个Module都会对应有⼀个Gradle⽂件,另外还有⼀个主Project的Gradle⽂件管理全局。下⾯我们先看看那个叫gradle-wrapper.properties的⽂件:
gradle-wrapper
Wrapper是对Gradle的⼀层包装,便于在团队开发过程中统⼀Gradle构建的版本号,这样⼤家都可以使⽤统⼀的Gradle版本进⾏构建。
上⾯我们看到的图就是Gradle提供内置的Wrapper task帮助我们⾃动⽣成Wrapper所需的⽬录⽂件。再看看我们Android项⽬⾥⾯⾃动⽣成的⽂件
终于,我们知道这⼏个⾃动⽣成的⽂件原来是Gradle Wrapper创建出来的。
那下⾯我们看看gradle-wrapper.properties这个⽂件的作⽤
看到项⽬⾥⾯的各个属性,下⾯再看看每个属性的作⽤
我们其实最关⼼的应该是distributionUrl这个属性,他是下载Gradle的路径,它下载的东西会出现在以下的⽂件夹中
看到了吧,这个⽂件夹包含了各个版本你下载的Gradle。
当我是初学者的时候⽼是会遇到⼀个问题,那就是下图:
导⼊项⽬的时候⼀直会停留在这个界⾯,这是为什么?其实原因很简单,就是你常⽤项⽬的Gradle版本跟你新导⼊项⽬的Gradle版本不⼀致造成的,那怎么解决?我本⼈⾃⼰是这么做的:
⽹速好或者科学上⽹的时候,由它⾃⼰去下载,不过下载时间有长有短,不能保证。
当你在公司被限⽹速的时候,当然也是我最常⽤的,就是把你最近常⽤项⽬的gradle-wrapper.properties⽂件替换掉你要导⼊项⽬的该⽂件,基本上我是这样解决的,当然有时候也会遇到替换掉报错的情况,不过⽐较少。
下⾯我们讲讲adle⽂件,它其实是⽤于初始化以及⼯程树的配置的,放在根⼯程⽬录下。
properties是什么文件
设置⽂件⼤多数的作⽤都是为了配置⾃⼯程。在Gradle众多⼯程是通过⼯程树表⽰的,相当于我们在Android Studio看到的Project和Module概念⼀样。根⼯程相当于Android Studio的Project,⼀个根⼯程可以有很多⾃⼯程,也就是很多Module,这样就和Android Studio定义的Module概念对应上了。
我们可以看到这个项⽬我们添加了7个module,⼀⼀对应,如果你的项⽬添加了项⽬依赖,那就会出现在这个⽂件当中。
好了,我们说完adle⽂件之后就慢慢进⼊其他⽂件了,但是⾸先我们要解释⼀下什么是Groovy:
Groovy
Groovy是基于JVM虚拟机的⼀种动态语⾔,它的语法和Java⾮常相似,由Java⼊门学习Groovy基本没有障碍。Groovy完全兼容Java,⼜在此基础上增加了很多动态类型和灵活的特性,⽐如⽀持密保,⽀持DSL,可以说它就是⼀门⾮常灵活的动态脚本语⾔。css鼠标点击后样式
⼀开始我总把Gradle和Groovy搞混了,现在我总把他们的关系弄清楚了。Gradle像是⼀个软件,⽽Groovy就是写这个软件的语⾔,这就很简单明了吧。那下⾯我们说到的内容都是⽤Groovy语法写的,但是这个知识点我就暂时不科普了,有兴趣的⼩伙伴可以去了解⼀下更深⼊的Groovy语法。
下⾯我们就来讲讲主的adle⽂件:
我们这⾥,分为四个标签来讲:
1.buildscript
do while语句经典例子
buildscript中的声明是gradle脚本⾃⾝需要使⽤的资源。可以声明的资源包括依赖项、第三⽅插件、maven仓库地址等2.ext
ext是⾃定义属性,现在很多⼈都喜欢把所有关于版本的信息都利⽤ext放在另⼀个⾃⼰新建的gradle⽂件中集中管理,下⾯我介绍⼀下ext 是怎么⽤的:
- ⾸先我们新建两个⽂件,分别叫adle和adle
- 然后分别在两个⽂件中打上相应的代码
- 最后在Android Studio的Terminal移动到相应的⽂件夹中运⾏task。
我们可以很神奇的发现,当我们在adle⽂件中输⼊了apply from:’adle’这句话,我们就可以读取到该⽂件下ext的信息。
现在在项⽬中我也是这种⽅法统⼀管理所有第三⽅插件的版本号的,有兴趣的朋友也可以试试。
顾名思义就是仓库的意思啦,⽽jcenter()、maven()和google()就是托管第三⽅插件的平台
4.dependencies
当然配置了仓库还不够,我们还需要在dependencies{}⾥⾯的配置⾥,把需要配置的依赖⽤classpath配置上,因为这个dependencies在buildscript{}⾥⾯,所以代表的是Gradle需要的插件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。