我是靠谱客的博主 明理戒指,最近开发中收集的这篇文章主要介绍gradle和groovy,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我是学习一篇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的全部内容,希望文章能够帮你解决gradle和groovy所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部