No1:
设置文件默认名是setting.gradle,放在根目录下,大多数作用都是为了配置子工程
No2:
一个Project包含很多个Task。Task就是一个操作,一个原子性的操作。其实它是Project对象的一个函数
No3:
task customTask1{
doFirst{
println 'customTask1:doFirst'
}
doLast{
println 'customTask1:doLast'
}
} tasks.create("customTask2"){
doFirst{
println 'customTask2:doFirst'
}
doLast{
println 'customTask2:doLast'
}
}
结果
说明这两个任务是一样的
No4:
依赖:用于控制执行顺序
task ex35Hello<<{
println 'hello'
} task ex35Main(dependsOn:ex35Hello){
doLast{
println 'main'
}
}
结果
No5:
多重依赖
task ex35Hello<<{
println 'hello'
} task ex35World<<{
println 'world'
} task ex35MultiTask{
dependsOn ex35Hello,ex35World
doLast{
print 'multiTask'
}
}
结果
注:方法名后面的<<可以不要
No6:
交互
task ex36Hello<<{
println 'dowLast1'
} ex36Hello.doFirst{
println 'dowFirst'
} ex36Hello.doLast{
println project.hasProperty('ex36Hello')
println 'dowLast2'
}
结果
Project在创建该任务的时候,同时把该任务对应的任务名注册为Project的一个属性,类型是Task
project.hasProperty('ex36Hello')用来判断是否有这个属性
No7:
自定义属性:ext
//自定义一个Project的属性
ext.age = 18 //通过代码块同时自定义多个属性
ext{
phone = 13342342
address = ''
} task ex37CustomProperty<<{
println "年龄是:${age}"
println "电话是:${phone}"
println "地址是:${address}"
}
结果
No8:
SourceSet
apply plugin :"java"
ext.age = 18
ext{
phone=13123
address=''
} sourceSets.all{
ext.resourcesDir=null
} sourceSets{
main{
resourcesDir='main/res'
}
test{
resourcesDir='test/res'
}
} task ex38CustomProperty<<{
println "年龄是:${age}"
println "电话是:${phone}"
println "地址是:${address}" sourceSets.each{
println "${it.name}的resourceDir是:${it.resourcesDir}"
}
}
结果