Gradle 什么是;DSL“;你是说格拉德尔?

Gradle 什么是;DSL“;你是说格拉德尔?,gradle,dsl,Gradle,Dsl,当我阅读安卓NDK文档时,有一个“DSL”。我不知道这到底是什么意思。请告诉我“DSL”的全名好吗 文件如下: 它代表“领域特定语言”,可以找到更多信息。简单地说,它代表“领域特定语言”。在gradle上下文中,DSL为您提供了一种特定于gradle的方法来形成构建脚本。更准确地说,它是一个基于插件的构建系统,定义了一种使用(主要)各种插件中定义的构建块来设置构建脚本的方法 例如,gradle脚本通常依赖于使用将闭包作为唯一参数的方法(也称为构建块)。你就这样写下来 apply plugin:

当我阅读安卓NDK文档时,有一个“DSL”。我不知道这到底是什么意思。请告诉我“DSL”的全名好吗

文件如下:

它代表“领域特定语言”,可以找到更多信息。

简单地说,它代表“领域特定语言”。在gradle上下文中,DSL为您提供了一种特定于gradle的方法来形成构建脚本。更准确地说,它是一个基于插件的构建系统,定义了一种使用(主要)各种插件中定义的构建块来设置构建脚本的方法

例如,gradle脚本通常依赖于使用将闭包作为唯一参数的方法(也称为构建块)。你就这样写下来

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    ...

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 25
因此,在上面,我们想使用“android{…}”构建块
(或预定义的任务——请参见示例89)为我们的构建设置一些android属性。但我不知道一开始我能在里面放些什么。所以,我需要一种从某处查找这些内容的方法。这就是GradleDSL和插件一起发挥作用的地方。我可以去那个特定的插件看看它定义了什么样的构建块,或者这个插件有什么特别之处。这些就是以称为(gradle)DSL的高级语言的形式定义插件功能的东西

理解DSL是如何工作的可能需要您了解“委托”在groovy中是如何工作的。可能会有很大帮助

您可能想知道的最后一件事是如何计算gradle.script。你可以在网上找到一些有用的信息