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/**' }
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
上面定义了SourceSet ‘main’ 的访问方式,SourceDirectorySet ‘java’ 配置编译时要排除的包。
configurations { }
配置项目的依赖配置。这个方法执行给定的针对项目的ConfigurationContainer。ConfigurationContainer会传递给闭包,作为它的代理。
artifacts { }
配置项目发布的产品。这个方法执行给定的针对本项目的ArtifactHandler闭包。ArtifactHandler会被传递到闭包,作为闭包的代理。
publishing { }
配置publishing插件添加的PublishingExtension。
谢谢阅读
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/103611531
- 点赞
- 收藏
- 关注作者
评论(0)