groovy必知基础

**无缝兼容java

**Groovy提供了用于创建DSL的大量特点,并且gradle构建语言利用了这些特点,了解构建语言是如何工作的将有助于你编写构建脚本,特别是写自定义插件和任务的时候。

属性访问器的自动转换

{
    project.buildDir
    等价于:
    getProject().getBuildDir()

    project.group = "dianping.beauty"
    等价于:
    project.setGroup("dianping.beauty")
}

方法调用时,()是可选的

{
    project.setProperty("buildDir","/data")
    project.setProperty "buildDir","/data"
}

强大的List和Map

最重要的闭包

{
    File f = file(project.projectDir)
    f.list().each {
        item ->
        println(item)
    }
    等价于:
    File f = file(project.projectDir)
    f.list().each {
        println(it)//it为默认参数
    }
}

方法的最后一个参数是必包时,可以写在方法调用之后

project(':biz-service') {
    dependencies {
        compile project(":common-api")
    }
    task hello << cl
}
等价于:
project(':biz-service',{
    dependencies {
        compile project(":common-api")
    }
    task hello << cl
})
等价于:
project ':biz-service',{
    dependencies {
        compile project(":common-api")
    }
    task hello << cl
}