gradle 中tasks中的三种关系
第一种关系:dependsOn 表示一种tasks依赖于另一种tasks,要想执行另一种tasks,被依赖的要先执行。例如
task putOnSocks{
doLast{
println "putting on socks."
}
}
task putOnShoes{
dependsOn "putOnSocks"
doLast{
println "putting on shoes."
}
}
因为putOnShoes 依赖于putOnSocks,所以在运行$gradle putOnShoes 命令时,会先执行putOnSocks 再执行putOnShoes。
第二种关系:finalizedBy 表示的意思是:A is finalized by task B,task A runs, taskk B should be run afterwards.例如:
task eatBreakfask{
finalizedBy "brushYourTeeth"
doLast{
println "Om Om now breakfast!"
}
}
task brushYourTeeth{
doLast{
println "Brushie Brushie Brushie"
}
}
在运行$gradle -q eatBreakfast 命令后,会先执行eatBerakfast任务,紧接着执行brushYourTeeth任务。
第三种关系:mustRunAfter,表示一个任务在一个任务之后执行,例如:
task takeShower{
doLast{
println “Taking a shower.”
}
}
task putOnFragment{
shouldRunAfter "takeShower"
doLast{
println "Smellin fresh!"
}
}
运行$gradle -q putOnFragment takeShower命令会先执行takeShower,再执行putOnFragment。
类型化任务 type tasks
Copy Delete Zip
第一个Copy表示将一个文件夹下的东西复制到指定文件夹下,若这个指定的文件夹不存在,新建一个
如:task copyImages(type :Copy){
from ‘images’
into 'build'
}
运行$gradle copyImages 会将images文件夹下的内容复制到build文件夹下(build文件夹是新建的)
第二个delete表示删除指定文件夹及其内容
如:task deleteBuild(type: Zip){
delete 'build'
}
运行$gradle deleteBuild 命令将删除build文件夹及其内容。
第三个Zip 分类压缩
如: task zipImageFolders(type: Zip){
baseName = 'images'
destinationDir = file('build')
from ('images'){
include '*.jpg'
into 'jpeg'
}
from('images'){
include '*.gif'
into 'gif'
}
}
运行$gradle zipImageFolders命令表示 将images文件夹下的内容以.jpg结尾的放到jpeg文件夹下,以.gif结尾的放到gif文件夹下,将jpeg文件夹和gif文件夹进行压缩,压缩文件名为images.zip,将images.zip放到build文件夹下。