我是学习一篇CSDN博客,然后总结的这篇笔记,直接看这篇笔记可能会云里雾里,所以请先参考原文:http://blog.csdn.net/innost/article/details/48228651

gradle基础:
1、使用groovy语言,groovy继承自java;
2、是一种DSL(领域相关语言),如《智取威虎山》中的行话。
3、gradle project-path:tasks ,查看Project包含哪些Task信息,gradle tasks会列出每个任务的描述,通过描述,我们大概能知道这些任务是干什么的。
4、Gradle工作包含三个阶段:
    a  首先是初始化阶段。对我们前面的multi-project build而言,就是执行settings.gradle
    b  下一个阶段是Configration阶段。Configration阶段的目标是解析每个project中的build.gradle。比如multi-project build例子中,解析每个子目录中的build.gradle。在这两个阶段之间,我们可以加一些定制化的Hook。这当然是通过API来添加的。Configuration阶段完了后,整个build的project以及内部的Task关系就确定了。恩?前面说过,一个Project包含很多Task,每个Task之间有依赖关系。Configuration会建立一个有向图来描述Task之间的依赖关系。所以,我们可以添加一个HOOK,即当Task关系图建立好后,执行一些操作。
    c  最后一个阶段就是执行任务了。当然,任务执行完后,我们还可以加Hook。
5、Gradle主要有三种对象,这三种对象和三种不同的脚本文件对应,在gradle执行的时候,会将脚本转换成对应的对象:
    a  Gradle对象:当我们执行gradle xxx或者什么的时候,gradle会从默认的配置脚本中构造出一个Gradle对象。在整个执行过程中,只有这么一个对象。Gradle对象的数据类型就是Gradle。我们一般很少去定制这个默认的配置脚本。
    一般是gradle的相关信息,与项目无关?
    b  Project对象:每一个build.gradle会转换成一个Project对象。
    Project对应具体的工程,一个Project包含多少Task往往是插件决定的。
    在Project中,我们要:
        1 加载插件。不同插件有不同的行话,即不同的配置。我们要在Project中配置好,这样插件就知道从哪里读取源文件等.加载一个gradle文件。
          还可以加载一个gradle文件。把一些通用的函数放到一个名叫utils.gradle文件里。然后在其他工程的build.gradle来加载这个utils.gradle。这样,通过一些处理,我就可以调用utils.gradle中定义的函数了。
        2 设置属性。
    c  Settings对象:显然,每一个settings.gradle都会转换成一个Settings对象。

groovy基础:
1、动态语言,扩展了java;语言与java相通,又像一种脚本语言,groovy先编译成java类字节码,然后通过JVM来执行这个java类。
2、安装groovy,配置,需要java环境。在groovy安装目录/bin下,有一个groovyConsole.bat,双击可以打开groovy编辑环境。Ctrl+R运行代码。
3、String类型第一个字母必须大写
4、闭包就是一段用中括号{}括起来的函数,比函数灵活,不需要定义。
5、当函数的最后一个参数是闭包的话,可以省略圆括号。比如:

def testClosure(int a1,String b1, Closure closure){  //dosomething  closure() //调用闭包
}  

那么调用的时候,就可以免括号!

testClosure (4, "test", {  println"i am in closure"
} ) 

6、在groovy中,系统自带会加载当前目录/子目录下的xxx.groovy文件(经测试,即便没有指定包名)
7、利用groovyc编译成class文件去发现问题,当出现问题时,由于groovy是编译成class文件再执行,利用jd-gui打开class文件,查看源码。
8、在变量前加@Field,变量就是全局变量,不然变量只是方法内部变量,例如:

def x = 1
def printx(){  println x
} 

这句代码报错,找不到x,因为变量x不在方法printx中。

注意,在使用Field的时候需要引入:

import groovy.transform.Field

在使用过程中肯定会有很多困难,通常都是百度解决方案,我们也可以自己通过查找官方文档来解决问题,下面是三个主要的链接文档:
http://www.groovy-lang.org/api.html      groovy
https://docs.gradle.org/current/javadoc/       gradle api
https://docs.gradle.org/current/dsl/     gradle DSL 语法

gradle和groovy相关推荐

  1. Gradle与Groovy

    Gradle与Groovy 每个build.gradle文件的内容,基本上是Groovy脚本,比如: apply plugin: 'java' 其实,它是Groovy脚本,即: apply([plug ...

  2. gradle的groovy语法案例详解

    groovy的语法与python的语法有些类似 1.groovy的三个特性 1)不需要分号 2)不需要写get,set方法,对象里面默认会有get与set方法 3)方法的最后一个值默认为返回值,不需要 ...

  3. gradle groovy_Eclipse Mars:具有Gradle,Groovy和GSP支持的Grails 3.1

    gradle groovy 如果您想像使用Groovy / Grails Tool Suite或以前的Eclipse版本一样容易地使用Eclipse Mars(4.5)开发Grails 3项目,该怎么 ...

  4. Gradle 从 Groovy 到 KTS 迁移

    本文主要记录Groovy版本和kotlin版本的Gradle 相关设置.以便备忘或以后迁移参考. settings.gradle settings.gradle: pluginManagement { ...

  5. gradle风格的groovy代码

    我们先来看一段gradle中的代码: buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.b ...

  6. 【Groovy】Gradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )

    文章目录 一.Gradle 自动下载并配置构建环境 二.Gradle 提供 API 扩展与开发工具集成 三.Gradle 内置 Maven 和 Ivy 依赖管理 四.Gradle 使用 Groovy ...

  7. Android Gradle(三)Groovy快速入门指南

    本文首发于微信公众号「刘望舒」 原文链接:Groovy快速入门看这篇就够了 前言 在前面我们学习了为什么现在要用Gradle?和Gradle入门前奏两篇文章,对Gradle也有了大概的了解,这篇文章我 ...

  8. Gradle 之语言基础 Groovy

    最近在学习 Android 中 Gradle 相关的知识,如果想学好 Gradle,必要的 Groovy 基础是不可少的.Groovy 语言的知识也是非常多的,如果只是想在 Android Gradl ...

  9. gradle groovy_适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock

    gradle groovy Java开发人员最感兴趣的Groovy用例有哪些? 尽管已经有一段时间了,但似乎只有Groovy最近才开始使用Groove. 对于某些人来说,它基本上只是另一种深奥的JVM ...

最新文章

  1. 蓝鸥原生JS:js的历史及JavaScript的优缺点
  2. 对象序列化与反序列化
  3. Spring——AOP
  4. Android开发——异步任务中Activity销毁时的问题
  5. 工业级PoE交换机的分类知识详解
  6. retryexec.java 94_解决feign调用接口不稳定的问题
  7. 一个函数统一238个机器学习R包,这也太赞了吧
  8. 微软小冰你这么智能 .net知道吗?
  9. Ubuntu Server 16.04服务器版配置图解教程14 - 安装PHP7.1.11(源码包安装)
  10. sop流程图模板_sop是什么意思(sop标准作业流程模板)
  11. 8.21: Hackday、慈善x快速迭代
  12. Sublime Text 3在行前插入递增数字序号的方法
  13. 埃及分数c语言实训报告,C语言实例 将真分数分解为埃及分数
  14. java中北大学ppt总结+课后习题第三章(小宇特详解)
  15. 美式英语口语中连读、略读,音变的技巧
  16. 知识点小记——广播地址与有限广播地址
  17. WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换案例教程(附转换工具下载)
  18. 引用pdf插件在线预览的问题
  19. Autocad2015点开闪退问题,线段等分
  20. 自媒体怎么赚钱?新手小白日入600+

热门文章

  1. 项目方案汇报,如何对甲方,专家和领导“投其所好”?
  2. android 电视设计方案,基于ANDROID4.X的智能电视电脑一体机的设计方案
  3. 2个适合新手可做的领域,做影视剪辑赚了2万多,容易违规扣分?
  4. WinForm控件之【MaskedTextBox】
  5. php readdir scandir,php - readdir vs scandir - 堆栈内存溢出
  6. AiHiX访谈屠文毅:生命美学与気@新龙门课站+稻.美学馆
  7. 佛说前世的五百次回眸才换来今生的擦肩而过!
  8. 上班族注意:消除脖子酸痛的方法!!!
  9. 本周回顾:Windows 11 iOS 互连、Edge、微软财报、Windows 10 22H2、新游戏合作协议、New Bing 等
  10. 2019CCPC网络赛 1002 HDU 6703(权值线段树)