首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在gradle中"DSL“是什么意思?

在gradle中"DSL“是什么意思?
EN

Stack Overflow用户
提问于 2016-07-13 02:39:55
回答 3查看 11.3K关注 0票数 23

当我阅读Android NDK文档时,我看到了"DSL“。我不知道这到底是什么意思。你能告诉我"DSL“的全名吗?

文档在此处:http://tools.android.com/tech-docs/new-build-system/gradle-experimental#TOC-Samples

EN

回答 3

Stack Overflow用户

发布于 2018-01-15 21:25:36

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

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

代码语言:javascript
运行
复制
apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    ...

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 25

所以在上面,我们想要使用' android { ...}‘构建块(或预定义的任务-请参见示例.89 here)来为我们的构建设置一些安卓属性。但是我不知道在开始的时候我可以放入哪些构建块。因此,我需要一种方法来从某个地方查找这些数据。这就是gradle DSL和插件一起发挥作用的地方。我可以去那个特定插件的page找出它定义了什么类型的构建块,或者是什么让这个插件很特别。这些将以一种称为(gradle) DSL的高级语言的形式定义插件的功能。

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

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

票数 34
EN

Stack Overflow用户

发布于 2016-07-13 02:45:01

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

票数 2
EN

Stack Overflow用户

发布于 2022-01-29 08:59:47

Gradle是一个构建工具,而不是一种语言。但在android中,我们使用android gradle插件来获取语法,api来使用android中的gradle。

e.g

代码语言:javascript
运行
复制
signingConfigs {
            debug {
                keyAlias 'cooldude69'
                keyPassword 'cooldude69'
            }
        }

这里,signingConfig是build.gradle文件的一部分,它帮助Gradle build工具指定这个构建是一个带有特定keyAlias的调试构建。

因此,这些构建块、API等都是android中使用Gradle的格式,因此被称为Gradle DSL (领域特定语言)。也可以用外行的话说,使用Gradle构建工具是一种Gradle语言(基于groovy languge)。

参考->

https://developer.android.com/reference/tools/gradle-api/4.2/classes

https://developer.android.com/studio/build/gradle-tips#groovy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38336576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档