lesson 2 Gradle基本语法
之前说过,gradle是基于Groovy语言的,那么现在来说一说他的一些基本语法,和在gradle中常用的一些方法。
如果小伙伴们使用了eclipse或者idea那么都可以使用IDE中安装的groovy插件进行操作。下面以idea为例。
在idea中工具栏中选择tools->Groovy console就可以打开一个groovy的窗口了。
然后可以在里面敲一些代码,print 'Hello World'然后点击运行,在控制台里,Hello World就被输出了,是不是感觉很简单呢。下面来说一些具体的语法吧。
在Groovy中,可以兼容java代码,下面的代码在groovy中是没有问题的。
Groovy中会默认public声明,也可以忽略行末的分号,它也支持自行推断变量类型而省略类型声明。
在类中,会默认创建setter和getter方法,调用的时候可以调用setter,getter,也可以直接点属性。
它使用def作为声明,类似js中的var。
方法的返回值的return也是可以忽略的,但是会默认返回方法体中最后一行代码的结果。
class Demo{//和public class Demo是一样的
int a//变量中public也可以省略
String str;
def method1(){
def a = 1
def b = 'abc'
def c = new String();
System.out.println b;//括号可以省略
}
}
def demo = new Demo()
print demo.a
Groovy中字符串有三种表示方法,'hi',"hi"和'''hi'''这样三种,一表示为单纯的字符串,就是一个最普通的字符串,第二种则有些不同,他可以引用一些变量进去,第三种则是可以换行的字符串,下面举例说明。
//先用java的方式定义个变量
int a = 123;
//groovy的三种字符串表示方法
println 'abc${a}'
println "abc${a}"
println '''
abc${a}
'''
控制台输出
> println 'abc${a}'
> println "abc${a}"
> println '''
> abc${a}
> '''
abc${a}
abc123
abc${a}
可以观察到,1和3的写法中,并不能引用a变量,2是可以的
上面都是groovy中比较简单的语法,groovy中比较重要的一个概念叫做闭包(closure)。它既可以作为方法来执行,也可以作为参数来传递。
//定义方式
def closure = {
v->//参数以“,”分割,如果没有,也可以不写
println v
}
//调用方式
closure()//根据需求填写参数,括号可忽略
closure.call()//参数同上
//闭包可以调用外部的变量,方法不可以
def c = { //成功执行
v->
print v+'hi'+' '+${a}
}
def abc(){ //失败,会报错
println "hello${a}"
}
闭包可以更灵活的构成代码结构,当然这也它的弊端之一,同时也会使代码更不容易阅读。
说完了它的一些基本概念,感兴趣的同学可以学习一下groovy的具体内容,咱们就不讲的太复杂了。
下面从build.gradle文件来说一说它里面的语法:
//这是个闭包
plugins {
id ‘java’
}
//是一个方法,也是一个成员变量,所以也可以写作 group('com.gradle.learn')或group='com.gradle.learn'
group ‘com.gradle.learn’
version ‘1.0-SNAPSHOT’
sourceCompatibility = 1.8
//这是个闭包
repositories {
mavenCentral()
}
//这是个闭包
dependencies {
testCompile ‘junit:junit:4.11’
}
闭包在Gradle中几乎无处不在,相信大家应该了解完groovy的简单语法之后,应该是可以看懂Gradle的脚本了。
本文介绍Gradle的基础语法,以及如何通过Groovy语言进行配置。探讨了Groovy的特性,如闭包、字符串处理等,同时展示了Gradle脚本中的闭包使用实例。
485

被折叠的 条评论
为什么被折叠?



