【Android Gradle 插件】自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )

Android Plugin DSL Reference 参考文档 :





一、为自定义 Gradle 任务添加依赖任务



如果 Gradle 任务 A 的执行 是在 Gradle 任务 B 执行的基础上的 , 那么可以将任务 B 设置为 任务 A 的依赖 ;

代码示例 : 将 sayHello 任务和 sayHello2 任务设置为 sayHello3 任务的依赖任务 , 如果要执行 sayHello3 任务 , 则需要先执行 sayHello 和 sayHello2 任务 ;

task sayHello {
    
    
    doLast {
    
    
        println 'sayHello'
    }
}

task sayHello2 {
    
    
    doLast {
    
    
        println 'sayHello2'
    }
}

task sayHello3 (dependsOn: [sayHello, sayHello2]) {
    
    
    doLast {
    
    
        println 'sayHello3'
    }
}

执行

gradlew :app:sayHello3

命令 , 命令行输出内容如下 :

D:\002_Project\002_Android_Learn\Android_UI>gradlew :app:sayHello3
WARNING:: Please remove usages of `jcenter()` Maven repository from your build scripts and migrate your build to other Maven repositories.
This repository is deprecated and it will be shut down in the future.
See http://developer.android.com/r/tools/jcenter-end-of-service for more information.
Currently detected usages in: root project 'Android_UI', project ':app'

> Task :app:sayHello
sayHello

> Task :app:sayHello2
sayHello2

> Task :app:sayHello3
sayHello3

BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 executed

在这里插入图片描述







二、Gradle 任务依赖执行顺序控制



① 默认执行顺序 : 如果一个 Gradle 任务依赖于多个任务 , 则通过 dependsOn: 参数设置其执行顺序 , 按照该参数列表中的元素顺序执行 ;

task sayHello3 (dependsOn: [sayHello, sayHello2]) {
    
    
    doLast {
    
    
        println 'sayHello3'
    }
}

上述代码设置 , 先执行 sayHello 任务 , 再执行 sayHello2 任务 ;


② 调用 Task#dependsOn 函数 , 设置任务依赖 , 通过如下代码

sayHello2.dependsOn sayHello

可以将 sayHello 设置为 sayHello2 任务的依赖 , 执行时 先执行 sayHello 任务 , 然后执行 sayHello2 任务 ;

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/126942818