我是gradle的新手(也是groovy),我几乎没有落后于某些概念,并且不知道它是否与groovy或gradle相关以及谷歌有哪些关键词,以获得一些帮助.
我经常偶然发现:
android {
[some configuration]
}
Run Code Online (Sandbox Code Playgroud)
那么什么是android?一类?命名空间?一系列属性?
但更令人困惑的是:
有时我看到的配置看起来像:
minSdkVersion 19
Run Code Online (Sandbox Code Playgroud)
这似乎是一项任务,但没有一个等号.有时候会有像等号一样的作业
source = "folder/file.java"
Run Code Online (Sandbox Code Playgroud)
所以这很令人困惑.等号与没有等号.所有这些支架的东西.
我看到的所有常规介绍都没有涵盖这些主题.那么它是一些gradle约定还是真正的groovy语法?
tim*_*tes 16
在Groovy中,括号有时是可选的.
第一个android
是将闭包传递给Method.即:
void android( Closure config ) {
println "In Android : ${config()}"
}
android {
'tim'
}
Run Code Online (Sandbox Code Playgroud)
打印:In Android : tim
它与调用相同:
android( {
'tim'
} )
Run Code Online (Sandbox Code Playgroud)
如果你把parens放回去.
第二个示例minSdkVersion
是相同的,但它将一个Integer传递给一个方法.
void minSdkVersion( Integer version ) {
println "In MinSdkVersion : $version"
}
minSdkVersion 19
// same as minSdkVersion( 19 )
Run Code Online (Sandbox Code Playgroud)
这样打印 In MinSdkVersion : 19
最后一个示例是将属性设置为String(正如您所期望的那样)
严格来说,它android
是一个接受闭包(代码块)的动态方法,可以访问android
插件/任务配置的某些内部表示.因此,在该闭包内,您最终要么调用其他方法,要么对可用的属性进行赋值.如果没有等号,那么它是一个方法调用,如果存在那么它是一个纯属性.您可以通过查看插件文档或代表它的对象来获得这个想法.
我想你可以安全地将这个块称为android插件配置.因为它是代码所影响的.
归档时间: |
|
查看次数: |
1165 次 |
最近记录: |