为什么Gradle在使用dependsOn

时间:2018-12-01 19:43:23

标签: gradle build.gradle

无法理解为什么在使用dependsOn时依赖项任务按字母顺序执行。更使我感到困惑的是行动中的成就书的第84页上的声明In Gradle, the task execution order is not deterministic

后来作者继续说It’s important to understand that Gradle doesn’t guarantee the order in which the dependencies of a task are executed.

如果执行顺序是不确定的,则该顺序不应该总是字母顺序的,即应该是随机的

如果有人可以对此有所启发,那将是很好的。查找了有关gradle任务执行顺序的问题,但是我的问题有点不同,我想知道为什么作者称执行顺序为不确定的,以及为什么他继续说< strong>没有保证的顺序,实际上,通过尝试几个示例我看到的是完全相反的(即,始终按字母顺序排列)。

修改1开始

我的gradle脚本(build.gradle):

version = '0.1-SNAPSHOT'

task first{
    doLast{
        println "first"
    }
}
task second {
    doLast{
        println "second"
    }
}

task fourth {
    doLast{
        println "fourth"
    }
}

task wonder {
    doLast{
        println "Wonder"
    }
}

task thunder {
    doLast{
        println "thunder"
    }
}

task apple {
    doLast{
        println "apple"
    }
}

task printVersion(dependsOn: [second, first, fourth, wonder, thunder, apple]) {
    doLast{
        logger.quiet "Version: $version"
    }
}

task third{
    doLast{
        println "third"
    }
}

third.dependsOn('printVersion')    

以下是我每次尝试运行脚本的顺序:

:apple SKIPPED
:first SKIPPED
:fourth SKIPPED
:second SKIPPED
:thunder SKIPPED
:wonder SKIPPED
:printVersion SKIPPED
:third SKIPPED 

编辑1 END

0 个答案:

没有答案