美文网首页
Gradle 构建脚本基础:Projects 和 tasks

Gradle 构建脚本基础:Projects 和 tasks

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

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

总目录:Gradle 学习系列 -- 目录
上一篇:Gradle 构建脚本基础:Build 文件
下一篇:Gradle 构建脚本基础:任务依赖

1 Projects 以及 tasks

1.1 在 Gradle 中,可以有很多的 Project,可以定义一个 Project 用于生成一个 jar, 也可以定义另一个 Project 用于生成一个 war 包等。其实,一个 Project 就是一个业务模块,可以根据项目的情况进行抽象和归类,最后这一个个的 Project 组成了整个的 Gradle 构建。

1.2 比如在 AndroidStudio 的项目中,Gradle 的 Projects 就是根 Project 和 一个个的 Module。

1.3 从编程角度来看,Projects 就是一个个独立的模块。设计好一个工程的结构,在代码中就能够做到低耦合,高内聚。

1.4 一个 Project 又包含了多个 Task,也就是说每个 Project 是由多个 Task 组成的。Task 就是一个操作,一个原子性的操作。比如:打个jar包、复制一份文件、编译一次代码等。类似于:在一个业务模块(Project)中,有很多的函数(task)的原理。

2 创建任务

2.1 创建任务的示例如下:

task customTask() {
    doFirst {
        println("customTask -- doFirst")
    }

    doLast {
        println("customTask -- doLast")
    }
}

在命令行中执行命令:gradle customTask2
打印结果:

> Task :customTask
customTask -- doFirst
customTask -- doLast

示例里面的 task 看起来像是一个关键字,其实它是 Project 对象的一个函数,函数原型为 create(String name, Closure configureClosure)。 customTask 是任务的名称,可以自定义。第二个参数是一个闭包,也就是大括号里面的内容。

2.2 还可以通过 TaskContainer 的方式创建任务。在 Gradle 里,Project 对象已经定义好了一个 TaskContainer,这就是 tasks 对象,举个栗子:

task customTask() {
    doFirst {
        println("customTask -- doFirst")
    }

    doLast {
        println("customTask -- doLast")
    }
}

tasks.create("customeTask2"){
    doFirst {
        println("customTask2 -- doFirst")
    }

    doLast {
        println("customTask2 -- doLast")
    }
}

在命令行中执行命令:gradle customTask2
打印结果:

> Task :customeTask2
customTask2 -- doFirst
customTask2 -- doLast

通过测试可知,上面两个任务的作用是一样的,只是创建任务的方式和任务的名称不一样。

相关代码:https://gitee.com/fzq.com/gradle-demos

相关文章

网友评论

      本文标题:Gradle 构建脚本基础:Projects 和 tasks

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