gradle是声明式还是命令式构建工具?

gradle是声明式还是命令式构建工具?,gradle,declarative,imperative,Gradle,Declarative,Imperative,我想gradle使用的构建脚本可以根据需求进行编程。那么它是一个声明性的还是命令式的构建工具呢?事实上,它两者都是Gradle不会强迫你像Maven那样声明性,也不会像Ant那样命令式,它可以而且可能对你都是这样 根据: 设计良好的构建脚本主要由声明性脚本组成 配置而不是命令逻辑 尽可能使用Gradle的DSL,并且仅在需要处理特定情况或自定义操作时使用自定义条件块。Gradle在技术上不是完全必需的吗?因为它是Groovy/Kotlin DSL,Groovy/Kotlin是命令式的,绝对不是声

我想gradle使用的构建脚本可以根据需求进行编程。那么它是一个声明性的还是命令式的构建工具呢?

事实上,它两者都是
Gradle
不会强迫你像
Maven
那样声明性,也不会像
Ant
那样命令式,它可以而且可能对你都是这样

根据:

设计良好的构建脚本主要由声明性脚本组成 配置而不是命令逻辑


尽可能使用Gradle的DSL,并且仅在需要处理特定情况或自定义操作时使用自定义条件块。

Gradle在技术上不是完全必需的吗?因为它是Groovy/Kotlin DSL,Groovy/Kotlin是命令式的,绝对不是声明式的。例如,Gradle代码,例如
repositories{jcenter();mavenCentral()}
看起来和感觉都是声明性的,但这只是方法调用
project.repositories({jcenter();mavenCentral()})
,它本身直接等价于
RepositoryHandler rh=project.getRepositories(); rh.jcenter();rh.mavenCentral()
(按特定顺序)。