gradle task执行顺序

刚开始用gradle,临急抱佛脚,走了很多弯路。

task 执行顺序

下面有一个task hello:

task hello {
}

hello {
    println 'Hello nothing1'
}

hello.doFirst {
    println 'Hello first1'
}

hello << {
    println 'Hello <<1'
}

hello.doLast {
    println 'Hello last1'
}

hello << {
    println 'Hello <<2'
}


hello {
    println 'Hello nothing2'
}

hello.doFirst {
    println 'Hello first2'
}

hello << {
    println 'Hello <<3'
}

hello.doLast {
    println 'Hello last2'
}

hello << {
    println 'Hello <<4'
}

他的执行结果是:

Hello nothing1
Hello nothing2
Hello first2
Hello first1
Hello <<1
Hello <<2
Hello last1
Hello <<3
Hello <<4
Hello last2
Hello <<5

由此可以得出:

task内顺序:

  • 什么都不写是init块,最先执行

  • doFirst块,且后定义的先执行

  • doLast块(<<等同于doLast,属于简写),且先定义的先执行

task间顺序

这里我写了一个task bye,并dependsOn hello,其余和hello一样。

结果是:

Hello nothing1
Hello nothing2
Bye nothing1
Bye nothing2
Hello first2
Hello first1
Hello <<1
Hello <<2
Hello last1
Hello <<3
Hello <<4
Hello last2
Hello <<5
Bye first2
Bye first1
Bye <<1
Bye <<2
Bye last1
Bye <<3
Bye <<4
Bye last2
Bye <<5

结果是:

先执行各个task的init块,再根据task之间依赖关系顺序执行

版权所有,转载请注明出处:
https://sickworm.com/?p=66