9、任务入门

任务入门

在我们的主module下的build.gradle中定义一个任务

task hello{
        println 'Hello,World!'
    }

命令行执行任务:


image.png

从输出结果来看,你可能觉得该任务执行了,实际上“Hello,World!”在执行该任务之前就已经被打印出来了,我们知道在任一gradle构建中,都有三个阶段:初始化阶段、配置阶段、执行阶段,如果像上面代码那样定义一个任务的话,你实际上是设置了任务的配置,即使你执行了不同的任务,“Hello,World!”也会输出来
验证一下:

 task hello{
        println 'Hello,World!'
    }
 task weixin{
        println 'weixin'
    }

看下输出:


image.png

如果你是想在任务执行阶段给任务添加一个动作,可以这样定义任务:

    task hello << {
        println 'Hello,World!'
    }
    task weixin << {
        println 'weixin'
    }

通常定义一个任务的方式有下面几种:

    task hello << {
        println 'Hello'
    }

    task(hello1) <<{
        println 'Hello1'
    }

    task('hello2') <<{
        println 'Hello2'
    }

    tasks.create(name:'hello3') <<{
        println 'Hello3'
    }

任务剖析

Task接口是所有任务的基础,它定义了一系列的属性和方法,所有这些都是由一个叫作DefaultTask的类实现的,这是标准的任务实现方式,你创建的每一个新的任务都是基于DefaultTask的。
https://docs.gradle.org/current/javadoc/org/gradle/api/DefaultTask.html
每个任务都包含一个集合,集合中存放的是Action对象,当一个任务被执行时,所有的这些Action会以连续的顺序被执行,你可以使用doFirst()和doLast()方法为一个任务添加Action,这些方法都是以一个closure作为参数被包装到一个Action对象中的。
之前使用的<<就是doFirst()方法的简写。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容