今天就开始学习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. DOS系统功能调用表(INT 21H)

    AH 功能 调用参数 返回参数 00 程序终止(同INT 20H) CS=程序段前缀 01 键盘输入并回显 AL=输入字符 02 显示输出 DL=输出字符 03 异步通迅输入 AL=输入数据 04 异 ...

  2. http authorization basic请求代码示例

    /** * */ package testJava.java; import java.io.BufferedReader; import java.io.InputStream; import ja ...

  3. Sqli-labs less 41

    Less-41 此处与less-39是一致的,区别在于41错误不回显.所以我们称之为盲注. Payload: http://192.168.11.189/sqli-labs/Less-41/index ...

  4. POJ 1274

    #include<iostream> #include<stdio.h> #include <string.h> #include <vector> # ...

  5. VS2012简单的使用感受+插件推荐

    VS2012简单的使用感受+插件推荐http://www.cnblogs.com/tangge/archive/2013/03/12/2955367.html

  6. CF 50E. Square Equation Roots

    思路:这题的关键就是重复根只可能是整数. 这样先求出所有的根的数目,在减去重复的根. 代码如下: #include <iostream> #include <cstring> ...

  7. Linux中ping命令

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...

  8. Task 使用 Task以及Task.Factory都是在.Net 4引用的。Task跟Thread很类似,通过下面例子可以看到。

    static public void ThreadMain() { Thread t1 = new Thread(TaskWorker); t1.Start(3); } static public v ...

  9. hdu 3590 PP and QQ

    知识储备: Anti-SG 游戏和 SJ 定理  [定义](anti-nim 游戏)  桌子上有 N 堆石子,游戏者轮流取石子.  每次只能从一堆中取出任意数目的石子,但不能不取.  取走最后一 ...

  10. OneAPM:打造云时代的应用性能管控平台

    在2015年大连市CIO信息化年会的现场,记者与OneAPM东北区总经理佟维针对云时代的企业系统应用性能的管理控制进行了简短交流.北京蓝海讯通科技股份有限公司,即OneAPM是中国基础软件领域的新兴领 ...