Introduction

此参考指南描述了各种各样的构成Gradle 构建语言的类型,或者DSL …

Some basics

例如一般情况下我们需要编写Gradle 脚本来控制项目的构建.
首先,Gradle 脚本叫做配置脚本 ..
在脚本执行时,它会配置一个特殊类型的对象,举个例子,当构建脚本执行的时候,它会配置一个Project的类型对象. 这个对象叫做脚本的代理对象 ..
以下展示了每一种Gradle 脚本的代理类型

Type of script Delegates to instance of
Build script Project
Init script Gradle
Settings script Settings

这些代理对象的属性和方法都可以使用在脚本中 ..
第二,每一个Gradle 脚本都实现了Script 接口 ..,这个接口定义了大量的属性以及方法,你能够使用在脚本中 ..

Build script strcture

一个构建脚本由零个或者多个语句以及脚本块组成.. 语句能够包含方法调用 ,属性赋值以及本地变量定义 ..
一个脚本块是一个方法(它接收一个闭包参数) …
这个闭包将作为配置闭包处理 - 当它执行的时候可以配置某些代理对象 ..
以下列出了顶级的脚本块 …

脚本块

一个构建脚本也可以是Groovy 脚本,并且能够包含上面列出的所有脚本元素 … 包括方法定义以及类声明 ..

Core types

  • Project 这是一个主要和Gradle进行交互的接口(可以从构建文件中访问它),在项目中可以编程式访问Gradle的特性 ..
  • Task 一个任务代表了一个构建中的单个原子性操作,例如编译类或者生成javadoc ..
  • Gradle 呈现了Gradle 的一个执行 ..
  • Settings 声明此 配置用来实例化并配置参与到构建中的项目的体系
  • IncludedBuild 包含在组合构建中的构建
  • Script 这个接口由所有的Gradle Groovy DSL 脚本实现并且增加了一些Gradle特定的方法… 你所编译的脚本类必然会实现此接口,你能够使用由此接口声明的方法或者属性 - 在你的脚本中 ..
  • SourceSet 一个资源集呈现了Java源文件和资源文件的逻辑分组,在用户手册中拥有更多的描述 ..
  • SourceSetOutput 所有输出目录的一组集合(编译的类,处理的资源,等等) ….

注意此类型继承FileCollection

  • SourceDirectorySet 一个资源目录集合代表了来自一组源文件目录的源文件集合 …

通常伴随着 include / exclude 匹配模式

  • IncrementalTaskInputs 提供访问任何的输入文件(它能够由一个增量任务处理的输入文件)
  • Configuration 一个配置呈现了一组工件以及它们的依赖 … 通过查看ConfigurationContainer 了解更多关于声明依赖到配置或者关于如何管理配置的文档 ..
  • ResolutionStrategy 围绕依赖解决定义策略. 例如 强制某些依赖版本,替换,冲突解决以及快照超时 ..
  • ArtifactResolutionQuery 一个构建查询的构建器(构建能够解析选择指定组件的软件工件)
  • ComponentSelection 代表一个模块的组件选择器以及候选版本的元组 - 能够在组件的选择规则中进行评估 …
  • ComponentSelectionRules 代表了组件选择规则的一个容器… 规则能够做为一个配置的解析策略的一部分并且独立的组件能够通过规则显式的接收或者拒绝 ..

组件要么能够被接收或者被拒绝将会遵循默认版本匹配策略 …