返回介绍

声明变量 - 扩展属性

发布于 2020-07-06 13:40:57 字数 2563 浏览 1064 评论 0 收藏 0

在 Gradle 领域模型中所有被增强的对象能够拥有自己定义的属性. 这包括,但不仅限于 projects , tasks , 还有 source sets . Project 对象可以添加,读取,更改扩展的属性. 另外,使用 ext 扩展块可以一次添加多个属性.

例子 13.3. 使用扩展属性

build.gradle

  1. apply plugin: "java"
  2. ext {
  3. springVersion = "3.1.0.RELEASE"
  4. emailNotification = "build@master.org"
  5. }
  6. sourceSets.all { ext.purpose = null }
  7. sourceSets {
  8. main {
  9. purpose = "production"
  10. }
  11. test {
  12. purpose = "test"
  13. }
  14. plugin {
  15. purpose = "production"
  16. }
  17. }
  18. task printProperties << {
  19. println springVersion
  20. println emailNotification
  21. sourceSets.matching { it.purpose == "production" }.each { println it.name }
  22. }

使用gradle -q printProperties输出结果

  1. > gradle -q printProperties
  2. 3.1.0.RELEASE
  3. build@master.org
  4. main
  5. plugin

在上面的例子中,一个 ext 扩展块向 Project 对象添加了两个扩展属性. 名为 perpose 的属性被添加到每个 source set,然后设置 ext.purpose 等于 null ( null值是被允许的 ). 当这些扩展属性被添加后,它们就像预定义的属性一样可以被读取,更改值.

例子中我们通过一个特殊的语句添加扩展属性,当您试图设置一个预定义属性或者扩展属性,但是属性名拼写错误或者并不存在时,操作就会失败. Project 对象可以在任何地方使用其扩展属性 ,它们比局部变量有更大的作用域. 一个项目的扩展属性对其子项目也可见.

关于扩展属性更多的细节还有它的API,请看 ExtraPropertiesExtension 类的 API 文档说明.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文