gradle 核心概念详解
1. project
工程中每个module 都是一个project 。在此工程中,一共有三个project 分别是 myAppliance,app 和 lib
方法介绍:
1. this.beforeEvaluate
2. this.afterEvaluate
3. this.gradle.buildFinished
4. getSubprojects
5. getAllProjects
6. getRootProject
7. project 方法
project("lib") {
//可以对lib 这个module进行配置
Project project ->
println ("lib project -- ${project.name}")
}
1 | project("lib") { |
2. 对所有project进行配置
allprojects 闭包
3. subProject
subprojects {
Project p ->
if(p.plugins.contains("library"))
apply from '../xxx.gradle'
}
4. Project 属性扩展 1
根project定义 ext 然后进行字段的扩展
ext {
jdk_version = 8l
}
gradle文件扩展,可以将gradle文件独立出来,然后在module 的gradlee文件使用
apply from : this.file("path")
5. Project 属性扩展 2
gradle.properties 中定义
ig:
isModule = true
使用:
if(hasProperty('isModule')) {
include 'lib'
}
6. 文件属性操作
文件路径获取 :
println getRootDir()
println getBuildDir()
println getProjectDir()
7. task执行顺序
1. dependsOn 属性指定
task("taskX") {
doLast {
println "taskX"
}
}
task ("taskY",dependsOn: taskX) {
doLast {
println "taskY"
}
}
2. mustRunAfter 维护
task ("taskY") {
mustRunAfter taskX
doLast {
println "taskY"
}
}
8. 将自定义task挂载到构件过程
this.project.afterEvaluate{
def build = project.tasks.getByName("build");
build.doLast {
cusTask.execute();
}
}