网站大量收购独家精品文档,联系QQ:2885784924

Gradle 编写构建脚本.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Gradle 编写构建脚本

Gradle 编写构建脚本 编写构建脚本 这⼀章着眼于⼀些编写构建脚本的详细信息。 Gradle 构建语⾔ Gradle 提供⼀种领域特定语⾔或者说 DSL ,来描述构建。这种构建语⾔基于 Groovy 中,并进⾏了⼀些补充,使其易于描述构建。 Project API 在Java 构建⼊门的教程中,我们使⽤了 apply ()⽅法。这⽅法从何⽽来?我们之前说 在 Gradle 中构建脚本定义了⼀个项⽬ (project )。在构建的每⼀个项⽬中,Gradle 创 建了⼀个 Project 类型的实例,并在构建脚本中关联此 Project 对象。当构建脚本执⾏ 时,它会配置此 Project 对象: 在构建脚本中,你所调⽤的任何⼀个⽅法,如果在构建脚本中未定义,它将被 委托给 Project 对象。 在构建脚本中,你所访问的任何⼀个属性,如果在构建脚本⾥未定义,它也会 被委托给 Project 对象。 下⾯我们来试试这个,试试访问 Project 对象的 name 属性。 访问 Project 对象的属性 build .gradle println name println gradle -q chec 的输出结果 gradle -q check projectApi projectApi 这两个 println 语句打印出相同的属性。在⽣成脚本中未定义的属性,第⼀次使⽤时⾃ 动委托到 Project 对象。其他语句使⽤了在任何构建脚本中可以访问的 project 属性, 则返回关联的 Project 对象。只有当您定义的属性或⽅法 Project 对象的⼀个成员相同 名字时,你才需要使⽤ project 属性。 标准 project 属性 Project对象提供了⼀些在构建脚本中可⽤的标准的属性。下表列出了常⽤的⼏个属 性。 表 13.1. Project 属性 名称 类型 默认值 project Project Project实例 name String 项⽬⽬录的名称。 path String 项⽬的绝对路径。 description String 项⽬的描述。 projectDir File 包含⽣成脚本的⽬录。 buildDir File projectDir/build group Object 未指定 ersion Object 未指定 ant AntBuilderAntBuilder实例 Script API 当 Gradle 执⾏⼀个脚本时,它将脚本编译为⼀个实现了 Script 接⼜的类。这意味着所 有由该Script 接⼜声明的属性和⽅法在您的脚本中 可⽤的。 声明变量 有两类可以在⽣成脚本中声明的变量: 局部变量和额外属性。 局部变量局部 局部变量 ⽤ def 关键字声明的。它们只在定义它们的范围内可以被访问。局部变量 Groovy 语⾔底层的⼀个特征。 ⽰例 13.2. 使⽤局部变量 build .gradle def dest = dest task copy(type: Copy) { from source into dest } 额外属性 Gradle 的域模型中,所有增强的对象都可以容纳⽤户定义的额外的属性。这包括但并 不限于项⽬ (project )、任务 (tas )和源码集 (source set )。额外的属性可以通过所 属对象的 ext 属性进⾏添加,读取和设置。或者,可以使⽤ ext 块同时添加多个属 性。 13.3 例⼦. 使⽤额外属性 build .gradle apply plugin: ja a ext { springVersion = 3.1.0.RELEASE emailNotification = build@ } sourceSets.all { ext.purpose = null } sourceSets { main { purpose = production } test { purpose

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档