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
}