美文网首页
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