刚开始用gradle,临急抱佛脚,走了很多弯路。
下面有一个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之间依赖关系和first、last执行其它块