我正在尝试一个新项目的gradle,在 settings.gradle 文件中,我看到这几行我无法理解为它是什么样的结构或语言特征,它做了什么以及如何运作:
plugins {
id "com.gradle.build-scan" version "1.12.1"
id "cz.malohlava" version "1.0.3"
}
buildScan {
server = "some.host.com"
publishAlways()
}
我怀疑它是 关闭 或某种 界面 ,但无法生成它的头部或尾部。
任何帮助理解以下内容都会有很大的帮助:
答案 0 :(得分:3)
从语言的角度来看,闭包是在构建脚本之外的其他对象的上下文中执行的。这在Groovy中称为委托。
http://groovy-lang.org/closures.html#_delegation_strategy
plugin
代表https://docs.gradle.org/current/dsl/org.gradle.plugin.use.PluginDependenciesSpec.html
buildScan
委托Build Scan Plugin的扩展对象来配置插件。
答案 1 :(得分:2)
这里可能有些技巧我不明白,特别是因为我无法在API文档中找到.card {
position: relative;
width: 180px;
height: 180px;
}
或plugins()
。尽管如此,以下是对语法含义的合理解读。
buildScan()
和plugins {}
都是方法,它们将一个闭包(请参阅其他答案以解释此问题)作为参数。
每个闭包都有一个特定类型的委托对象,这取决于使用闭包的方法,即buildScan {}
的委托将是一个plugins()
在闭包内,将对委托对象执行非限定方法和属性。因此,对于buildScan()
块,将针对其委托调用plugins {}
。对于id(...).version(...)
,您需要在代理上设置属性buildScan {}
并调用其server
方法。
老实说,我不知道上述信息对于使用和理解Gradle有多大用处,但我认为这是你要求的。希望它有所帮助!