美文网首页
Gradle 构建脚本基础:自定义属性

Gradle 构建脚本基础:自定义属性

作者: 冯可乐同学 | 来源:发表于2021-12-28 09:12 被阅读0次

----《Android Gradle 权威指南》学习笔记

总目录:Gradle 学习系列 -- 目录

上一篇:Gradle 构建脚本基础:任务间交互

下一篇:Gradle 构建脚本基础:代码与脚本

  1. Project 和 Task 都允许用户添加额外的自定义属性。要添加额外的属性,通过应用所属对应的 ext 属性 即可实现。

  2. 添加之后可以通过 ext 属性对自定义属性读取和设置,如果要同时添加多个自定义属性,可以通过 ext 代码块。举个栗子,在 build.gradle 中有以下代码:

ext.age = 18
ext {
    phone = 13144445555
    address = "beiJing"
}
task taskExt {
    println "年龄是: ${age}"
    println "电话是: ${phone}"
    println "地址是: ${address}"
}

在命令行中执行命令:gradle -q taskExt
打印结果:

年龄是: 18
电话是: 13144445555
地址是: beiJing
  1. 相比局部变量,自定义属性有更为广泛的作用域,可以跨 Project,跨 Task 访问这些自定义属性。只要能访问这些属性所属的对象,那么这些属性都可以被访问到。

  2. 自定义属性不仅仅局限在 Project 和 Task 上,还可以应用在 SourceSet 中,这样等于每种 SourceSet 又多了一个可供配置的属性。在 IDEA 工程的 build.gradle 中有以下代码:

sourceSets.all {
    ext.resourcesDir = null
}
sourceSets {
    main {
        resourcesDir = "main/res"
    }

    test {
        resourcesDir = "test/res"
    }
}

task taskCustomProperty {
    sourceSets.each {
        println("${it.name}的 resourcesDir 是:${it.resourcesDir}")
    }
}

在命令行中执行命令:gradle -q taskCustomProperty
打印结果:

main的 resourcesDir 是:main/res
test的 resourcesDir 是:test/res

在项目中一般使用它来自定义版本号和版本名称,把版本号和版本名称单独放在一个 Gradle 文件中。因为它们每次发布时都会改变,变动频繁,放在一个单独的 Gradle 文件中,这样便于管理,而且改动的时候也不会因为 Git 冲突影响这个 Build 文件,便于解决冲突。

  1. 补充:对于上面在 IDE 中执行 Gradle 任务有两种方式:

    (1) 在 Gradle 面板中刷新后找到对应的任务名称后,双击即可执行任务,在 build 面板 或 run 面板中即可看到结果。如图所示: Gradle面板中执行任务.png
(2) 在 IDE 的 Terminal 面板直接运行 gradle 命令即可,如图所示: 命令行面板中执行任务.png
相关代码:https://gitee.com/fzq.com/gradle-demos

相关文章

网友评论

      本文标题:Gradle 构建脚本基础:自定义属性

      本文链接:https://www.haomeiwen.com/subject/uyccfrtx.html