zoukankan      html  css  js  c++  java
  • Gradle task简单使用

    还望支持个人博客站:http://www.enjoytoday.cn

    task是什么

    task是gradle构建脚本的最小运行单元,我们通过在gradle脚本中创建task任务,以期完成某个特定的功能,task在build.gradle中定义实现,task本身作为一个单独的运行单元,在编译时通过执行gradle task运行或者通过task之间的依赖运行。

    如何定义task

    task定义的方法很简单,创建的方式主要为两种:一种迭代声明task任务以及doLast,doFirst方法添加可执行代码;一种是通过 “<<” 快捷创建task任务,闭合执行任务代码。但不仅限于这两种,如下,为两种创建的简单代码格式:

    //迭代创建
    task A{
      doLast{
         println "this is task A."
     }
    }
    //可执行的简略创建方式
    task B << {
      println "this is task B"
    }
    
    
    运行结果如下:
    caihaifei@hfcai:$ gradle A
    :A
    this is task A.
    
    BUILD SUCCESSFUL
    Total time: 0.883 secs
    caihaifei@hfcai:$ gradle -q B
    this is task B
    

    如上所示,直接通过gradle [-q] A(创建的任务名),即可执行查看运行结果。

    task之间的依赖

    task 可以通过dependsOn实现task任务间的依赖,可以选择直接在定义task时或者定义结束后添加依赖说明,定义依赖根据依赖声明的位置的前后,依赖说明写法略有不同,格式如下所示:

    task A{
      doLast{
         println "this is task A."
     }
    }
    task B << {
      println "this is task B"
    }
    B.dependsOn('E')
    task C(dependsOn: B) << {
    
      println "this is task C"
    
    }
    task D(dependsOn: 'E') <<{
     println "this is task D."
    }
    task E << {
     println "this is task E"
    }
    A.dependsOn(B)

    结果验证可以通过运行task A 、task B 、task C、task D查看结果,结果显示如下:

    caihaifei@hfcai:$ gradle -q A
    this is task E
    this is task B
    this is task A.
    caihaifei@hfcai:$ gradle -q B
    this is task E
    this is task B
    caihaifei@hfcai:$ gradle -q C
    this is task E
    this is task B
    this is task C
    caihaifei@hfcai:$ gradle -q D
    this is task E
    this is task D.
    

    task的执行方法

    task的执行方法如上所是,已经介绍了一些,我们可以通过gradle指定执行task,也可以通过依赖于其他任务而在其他任务执行前执行,除此之外,我们还可以通过在脚本中指定默认执行任务,可以直接通过gradle执行,使用很简单,在脚本开头添加如下格式代码:

    defaultTasks 'A','C'

    执行方法以及结果如下:

    caihaifei@hfcai:~$ gradle -q
    this is task E
    this is task B
    this is task A.
    this is task C
    

    更多gradle介绍请查看:http://www.enjoytoday.cn/categorys/Gradle

  • 相关阅读:
    react router实现多级嵌套路由默认跳转
    【转载】git 撤销,放弃本地修改
    js中RGB值与16进制颜色值进行互转
    【转载】whistle 使用实践
    程序员腰突经历分享(中)
    在非洲运营互联网系统-如何搞定支付?
    30岁后遇不治之症(上)
    递归把path字符串构造成递归数组
    使用go开发公众号之 关注公众号发送小程序卡片
    excel 函数经验答题
  • 原文地址:https://www.cnblogs.com/twodog/p/12140412.html
Copyright © 2011-2022 走看看