美文网首页Gradle
Gradle的Task(2)任务间的依赖关系

Gradle的Task(2)任务间的依赖关系

作者: PythonDeveloper | 来源:发表于2016-09-23 08:07 被阅读3640次

    上一篇文章中我们介绍了如何自定义简单的任务。本文将通过如下四个简单任务来说明任务之间的依赖关系。

    task compile << {
        println "Compiled"
    }
    task unitTest << {
        println "Unit test"
    }
    task uiTest << {
        println "UI test"
    }
    task clean << {
        println "Clean"
    }
    
    1. 可以使用Task的dependsOn(Object... paths) method来指定依赖关系。例如 ,unitTest依赖于compile。
    unitTest.dependsOn compile
    

    执行gradle unitTest -q会输出如下结果。

    Compiled
    Unit test
    
    1. Gradle中的task之间的关系可以用有向无环图(DAG)来表示。任务之间不能互相依赖,否则Gradle会报错。
    unitTest.dependsOn compile
    compile.dependsOn unitTest
    

    执行gradle unitTest会报错Circular dependency

    1. 没有依赖关系的任务之间可以通过mustRunAfter()finalizedBy()等method来指定任务的执行顺序。举例如下:uiTest和unitTest都依赖于compile,那么如何保证uiTest总是在unitTest之后执行呢?答案就是使用mustRunAfter()
    uiTest.mustRunAfter unitTest
    

    执行gradle uiTest unitTest -q会输出如下结果,说明unitTest是在uiTest之前运行的。

    Compiled
    Unit test
    UI test
    

    相关文章

      网友评论

        本文标题:Gradle的Task(2)任务间的依赖关系

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