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

  • 相关阅读:
    6. Flask请求和响应
    5. Flask模板
    FW:Software Testing
    What is the difference between modified duration, effective duration and duration?
    How to push master to QA branch in GIT
    FTPS Firewall
    Query performance optimization of Vertica
    (Forward)5 Public Speaking Tips That'll Prepare You for Any Interview
    (转)The remote certificate is invalid according to the validation procedure
    Change
  • 原文地址:https://www.cnblogs.com/amiko/p/7906231.html
Copyright © 2011-2022 走看看