今天就开始学习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. 利用sublime的snippet功能快速创建代码段

    在前端开发中我们经常会输入相同的一些基本代码,例如常用的jquery引用,bootstrap框架,cssreset等等,如果每次使用时在复制粘贴感觉很麻烦,这里介绍一种更为简洁的方法 利用sublim ...

  2. CSS 类名的单词连字符:下划线还是连接符?

    本文的部分内容整理自我对此问题的解答: 命名 CSS 的类或 ID 时单词间如何连接? - 知乎 问题 CSS 类或 ID 命名时单词间连接通常有这几种写法: 驼峰式: solutionTitle.s ...

  3. [翻译]Kafka Streams简介: 让流处理变得更简单

    Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...

  4. Ckeditor 中一些核心的对象的作用

    1.CKEditor CKEditor对象用于掌管全局,他是一个单例对象,管理着所有实例化了的编辑框. 通过replace方法创建编辑框实例. 2.CKEditor.editor 表示一个编辑框实例, ...

  5. ASP.NET 应用程序安全

    原文:http://msdn.microsoft.com/zh-cn/magazine/hh708755.aspx 一.跨站点脚本 简介 XSS 攻击是指将脚本恶意注入用户的浏览会话,这通常在用户不知 ...

  6. 算术编码Arithmetic Coding-高质量代码实现详解

    关于算术编码的具体讲解我不多细说,本文按照下述三个部分构成. 两个例子分别说明怎么用算数编码进行编码以及解码(来源:ARITHMETIC CODING FOR DATA COIUPRESSION): ...

  7. 2014多校第十场1002 || HDU 4972 A simple dynamic programming problem

    题目链接 题意 : 每次无论哪个队投进一个篮球,就记下现在两队比分的差值,问你最后的结果有多少种情况. 思路 : 该题实在是不好理解,最后的结果有多少种情况就是说不管中间过程怎么来的,只要最后结果不一 ...

  8. hdu 4462(状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4462 思路:由于数据不大,可以直接将所有的状态表示出来,然后枚举,判断能否将方格全部覆盖. http: ...

  9. win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

    win7 64 + Ubuntu 14.04.1 64双系统安装 背景:我的笔记本之前的系统是window 7 64 + Ubuntu 14.04.1,用UEFI引导系统.安装过程是先装的win7,再 ...

  10. 针对安卓java入门:数据类型

    基本数据类型: 布尔型----boolean字符型----char 用单引号整数型----byte(字节型),short(短整型),int(整型),long(长整型)浮点数型--float(浮点型), ...