0
点赞
收藏
分享

微信扫一扫

Gradle脚本中的引用


Gradle脚本(Gradle scripts)是配置脚本(onfiguration scripts)。当执行脚本时,它会配置特定类型的对象。如构建脚本(build script)执行时,它会配置一个Project的对象。这个对象叫做脚本的代理对象(delegate object)。以下这个表格列出了每一个Gradle脚本(Gradle script)类型的代理实例:

脚本类型

代理的实例

Build script

Project

Init script

Gradle

Settings script

Settings

代理对象的属性和方法都可以在脚本中使用。每一个Gradle脚本 (Gradle script)都会实现Script接口。这个接口定义了许多属性和方法,供我们在脚本中使用。

Build script结构

构建脚本(build script)由零或多个声明和脚本块组成。声明包括方法调用,属性赋值,本地变量定义。 脚本块是一个方法调用,这个方法带一个闭包作为参数。当它执行时,闭包被当成一个配置了一些代理对象的配置闭包。顶层的脚本块有如下这些:


描述

buildscript { }

为这个项目配置构建脚本(build script)的类路径

allprojects { }

配置这个项目和它的所有子项目

subprojects { }

配置这个项目的所有子项目,但不包括这个项目

dependencies { }

配置项目的依赖

repositories { }

配置项目的依赖仓库,如maven

sourceSets { }

配置项目的资源集合

configurations { }

配置项目的依赖配置

artifacts { }

配置项目发布的产品

publishing { }

配置publishing插件添加的PublishingExtension

构建脚本(build script)也是Groovy脚本(Groovy script),所以可以包含Groovy 脚本里的元素,如Groovy脚本里定义方法、类。

buildscript { }

配置项目的构建脚本类路径。针对项目的ScriptHandler执行给定的闭包,ScriptHandler会被传递到闭包作为闭包的代理。

allprojects { }

配置这个项目和它的子项目。这个方法执行给定的针对本项目和它的子项目的闭包。Project对象会被传递到闭包,作为闭包的代理。

subprojects { }

配置本项目的子项目。
这个方法执行给定的针对本项目的子项目的闭包。Project对象会被 传递到闭包,作为闭包的代理。

dependencies { }

配置项目的依赖。这个方法执行给定的针对项目的DependencyHandler的闭包。
DependencyHandler会被传递到闭包,作为闭包的代理。

repositories { }

为本项目配置仓库。这个方法执行给定的针对的本项目的RepositoryHandler的闭包。
RepositoryHandler会被传递到闭包,作为闭包的代理。

sourceSets { }

配置本项目的资源集。执行给定的闭包,配置SourceSetContainer。SourceSetContainer会被传递到闭包作为它的代理。如下脚本:

apply plugin: 'java'

sourceSets {
main {
java {
exclude 'some/unwanted/package/**'
}
}
}

上面定义了SourceSet ‘main’ 的访问方式,SourceDirectorySet ‘java’ 配置编译时要排除的包。

configurations { }

配置项目的依赖配置。这个方法执行给定的针对项目的ConfigurationContainer。ConfigurationContainer会传递给闭包,作为它的代理。

artifacts { }

配置项目发布的产品。这个方法执行给定的针对本项目的ArtifactHandler闭包。ArtifactHandler会被传递到闭包,作为闭包的代理。

publishing { }

配置publishing插件添加的PublishingExtension。

谢谢阅读


举报

相关推荐

Shell脚本:模块引用

shell脚本--转义和引用

0 条评论