Gradle -构建生命周期

一、Gradle构建生命周期的三个阶段

1.初始化
根据settings.gradle,决定哪些项目要参与到构建中来,并创建这些项目的实例。
2.配置
执行各项目下的build.gradle脚本,配置阶段执行的代码包括build.gradle中的各种语句、task的配置块。


buildscript {
    dependencies {
        println("depencies的配置")
        ......
    }
}

println("build.gradle中,按顺序执行")

task hello{
      println("我是配置任务")
    doLast{
        println("我是执行语句,配置阶段不执行")
    }
}
./gradlew -q
depencies的配置
build.gradle中,按顺序执行
我是配置任务

记住不管你执行哪个build哪怕是gradle tasks配置代码都会执行
3.执行
按顺序执行,执行顺序是通过依赖关系决定的

二、添加回调

下面这段代码通过whenReady注册回调接口,当任务图创建的时候这个回调会自动执行,这个逻辑会在任何任务之前执行

task distribution << {
    println "my version is $version"
}

task release(dependsOn: distribution) <<{
    println 'release'
}

gradle.taskGraph.whenReady { taskGraph ->
    println taskGraph.allTasks
    if (taskGraph.hasTask(release)) {
        version = '1.0'
    } else {
        version = '1.0-debug'
    }
}
./gradlew -q distribution
[task ':distribution']
my version is 1.0-debug
./gradlew -q release     
[task ':distribution', task ':release']
my version is 1.0
release

下图帮助了解声明周期回调:

《Gradle -构建生命周期》 来自gradle实战

参考资料

Gradle实战

    原文作者:crossroads
    原文地址: https://www.jianshu.com/p/eff2aa36fffb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞