今天就开始学习Gradle构建了,听说很牛X。本篇内容就带领我初步窥探Gradle的世界。
 
  1.什么是Gradle
      相信之前都接触过用Ant或者Meavn进行项目的构建,两者各有千秋,Ant的灵活性,以及Meavn的强大依耐性都让它们在构建的世界里占据了一席之地。然而Ant的复杂配置以及Meavn的不灵活,都让程序猿们头疼万分。于是乎,新一代的构建黑马已悄然出世了,它就是Gradle。让我们欢迎它的到来!
      所以Gradle就是新的一种构建工具,只不过它不再使用XML来编写自己的构建脚本了区别了Ant和Meavn。使用了Google的另外一种脚本语言-Groovy。对于Groovy你可以暂时把它理解为强大而又精简的java。因为它就是JAVA,只不过是向上包装了,功能更强大了,语言更简练了。注意哦,Gradle是面向java项目的哦。
     对Gradle有了一个认识之后,接下来我们就开始初步接触Gradle。
 
  2.如何使用安装Gradle    Gradle的安装有两种方式,分别为静态安装和动态安装。动态安装一般在两种情况下使用,第一种普遍的在Eclipse以插件的形式出现用来构建Java项目,第二中则是出现在AndroidStudio中,我们知道Google全新打造的Android项目编辑器-AndroidStudio就是使用Gradle进行对Android项目的构建,在我们安装AS的时候,创建项目的时候,它会自动的下载安装Gradle,注意哦 这个过程可能需要越狱了,原因你懂的。下载完成后,Win平台会默认下载到 C:\Documents and Settings<用户名>.gradle\wrapper\dists 目录。你会看到这个目录下有个 gradle-x.xx-all 的文件夹, 如果下载实在太慢,但是又不想FQ的话,可以进行静态安装,自己手动到Gradle官网下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下,不过还是建议让它直接下载的好。 
 
  3.初步了解Gradle
    现在呢,就让我们结合一个项目实例来了解了解。
 
 
 
     这是一个用AS创建的一个项目,我们可以看到大致的项目结构,具体的就不多说了,不了解的可以去看看AS的项目结构。上面有三处用红色框框标记出来了,我们来一个个说明下,第一个也是最重要的一部分,它是整个工程的主项目的Gradle配置。
 
 
 
  
 
   我们可以看到在这个默认配置中,首先是apply plugin这表示在Gradle中申请一个相关的插件,比如Android项目就是apply plugin 'android',java项目就是apply plugin 'java'.但是要注意哦在当前最新的AS版本(1.0)中,申请Android插件的写法改成如下所示。而后的android{}则是Android插件的持有语法,compileSdkVersion-当前编译Sdk的版本号,buildToolsVersion-buildTools版本号,这个需要你本地安装该版本才行,很多人导入新的第三方库,失败的原因之一是build version的版本不对,这个可以手动更改成你本地已有的版本或者打开 SDK Manager 去下载对应版本。applicationId代表当前应用的包名,这是最新的写法。buildTypes{}什么编译项目的模式,一般有release和debug模式,其中的minifyEnabled 表示是否支持混淆编译,下面的 proguandFiles 包括两部分,前面的是本地的混淆编译文件,注意用来进行混淆声明。这个文件的目录在 **/tools/proguard/proguard-android.txt** , 后一部分是我们项目里的自定义的混淆文件,目录就在 **app/proguard-rules.txt** , 如果你用Studio 1.0创建的新项目默认生成的文件名是 **proguard-rules.pro** , 这个名字没关系,在这个文件里你可以声明一些第三方依赖的一些混淆规则,具体混淆的语法也不是本篇博客讨论的范围。最终混淆的结果是这两部分文件共同作用的
  第二个红色标记部分,则是整个工程的Gradle配置。
 
 
  
 
  我们可以看到buildscript{},这是Gradle语法,表示构建脚本。其中的repositories 表示Gradle依赖的仓储,jcenter()是新一代的中央仓储可以理解为mavencentro的升级版,其依赖仓储还包括Ivy以及本地仓储。dependencies表示该Gradle的构建版本。
 
 
第三个红色标记的部分,表示工程的中项目的声明。
 
 
   
 
这里就表示,该工程中所有的项目,本工程中只有一个项目 :app,对于有些包含多个moudle的工程,则要在此处声明,比如 include ':app', ':XXXproject'  以此类推进行添加
 
  4.小总
 
经过以上学习,相信我们已经初步的了解的Gradle。如非要给Gradle加上一个标签,那Gradle就是Ant和maven优点的结合体,并在此基础上添加了自己的优点! 更多的学习,敬请期待!
  

Gradle学习系列(一)的更多相关文章

  1. Gradle学习系列之一——Gradle快速入门

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  2. Gradle学习系列之一——Gradle快速入门(转)

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  3. Gradle学习系列之九——自定义Task类型

    在本系列的上篇文章中,我们学习了多Project构建,在本篇文章中,我们将学到如何自定义Task类型. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

  4. Gradle学习系列之三——读懂Gradle语法

    在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

  5. Gradle学习系列(三)

    上一篇我们已经学习了 Gradle 打包,那么这一节 就开始讲讲本章的第二版块:打包及使用Gradle过程中的常见错误问题. 有时候我们需要编辑一个开源项目之类的,希望把它导入了我们自己的IDE工具中 ...

  6. Gradle学习系列之十——自定义Plugin(本系列完)

    在本系列的上篇文章中,我们讲到了如何自定义Task类型,在本篇文章中,我们将讲到如何自定义Plugin. 请通过以下方式下载本系列文章的Github示例代码: git clone https://gi ...

  7. Gradle学习系列之八——构建多个Project

    在本系列的上篇文章中,我们讲到了Gradle的依赖管理,在本篇文章中,我们将讲到如何构建多个Project. 请通过以下方式下载本系列文章的Github示例代码: git clone https:// ...

  8. Gradle学习系列之七——依赖管理

    在本系列的上篇文章中,我们讲到了如何使用java Plugin,在本篇文章中,我们将讲到Gradle的依赖管理. 请通过以下方式下载本系列文章的Github示例代码: git clone https: ...

  9. Gradle学习系列之六——使用Java Plugin

    在本系列的上篇文章中,我们讲到了如何自定义Property,在本篇文章中,我们将讲到如何使用java Plugin. 请通过以下方式下载本系列文章的Github示例代码: git clone http ...

  10. Gradle学习系列之五——自定义Property

    在本系列的上篇文章中,我们讲到了增量式构建,在本篇文章中,我们将讲到如何自定义Project的Property. 请通过以下方式下载本系列文章的Github示例代码: git clone https: ...

随机推荐

  1. Auto Layout - 使用总结

    1.要开始使用AutoLayout,请先设置要约束的view的translatesAutoresizingMaskIntoConstraints属性为NO.在xib或者sb中勾选Use Auto La ...

  2. MySQL 5.7 虚拟列 (virtual columns)

    参考资料: Generated Columns in MySQL 5.7.5 MySQL 5.7新特性之Generated Column(函数索引) MySQL 5.7原生JSON格式支持 Gener ...

  3. UML部署图(转载)

    概述: 部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构. 因此,部署图是用来描述一个系统的静态部署视图.部署图由节点和它们之间的关系. 目的: 部署名称本身描述的原理图的目的.部署图用于描 ...

  4. oracle OVER(PARTITION BY) 函数

    OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返 ...

  5. javascript实现数据结构与算法系列:功能完整的线性链表

    由于链表在空间的合理利用上和插入,删除时不需要移动等的有点,因此在很多场合下,它是线性表的首选存储结构.然而,它也存在着实现某些基本操作,如求线性表长度时不如顺序存储结构的缺点:另一方面,由于在链表中 ...

  6. win7修改hosts文件方法

    因权限的关系,导致无法修改,解决如下: hosts属性 --> 安全 --> 编辑权限 --> 完全控制,就可以修改该文件了.win7默认不能修改hosts文件.

  7. hdu 1250 Hat's Fibonacci(java,简单,大数)

    题目 java做大数的题,真的是神器,来一道,秒一道~~~ import java.io.*; import java.util.*; import java.math.*; public class ...

  8. (1)opengl-nehe 4种框架

    http://www.yakergong.net/nehe/ 这个网站还是opengl方面比较权威的,作者叫nehe 这东西估计是要先装个ndk,然后才能运行代码 先睡觉! 以下内容参考自http:/ ...

  9. Windows PAE 寻址

    PAE 就是物理地址扩展.我们常规的寻址方式是之前的将虚拟地址化为10 10 12的方式来寻址页目录,页表,页偏移,但是在开始PAE之后的寻址方式发生了改变,将32位的虚拟地址转化成 2 9 9 12 ...

  10. C++ std命名空间

    1.命名空间是一种特殊的作用域,它包含了处于该作用域中所有标示符.命名空间使用namespace 来声明,并使用{}来界定命名空间的作用域,例如: namespace func{ int val=0; ...