Gradle脚本中的引用

举报
yd_221104950 发表于 2020/12/03 01:21:09 2020/12/03
【摘要】 Gradle脚本(Gradle scripts)是配置脚本(onfiguration scripts)。当执行脚本时,它会配置特定类型的对象。如构建脚本(build script)执行时,它会配置一个Project的对象。这个对象叫做脚本的代理对象(delegate object)。以下这个表格列出了每一个Gradle脚本(Gradle script)类型的代理实例: ...

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。