一、gradle基本概念讲解
优势:
- 灵活性好
- 粒度性上
- 兼容性
二、gradle执行流程讲解
Project的build.gradle
/**
*配置阶段开始前的监听回调
*/
this.beforeEvaluate {}
/**
*配置阶段完成以后的监听回调
*/
this.afterEvaluate {
println '配置阶段执行完毕。。。'
}
/**
*gradle执行完毕后的回调监听
*/
this.gradle.buildFinished {
println '执行阶段执行完毕。。。'
}
this.gradle.beforeProject {}
this.gradle.afterProject {}
三、Project核心API分解
代码:获取所有Project、子Project、父Project、根Project
/**
Project相关api讲解*/
this.getProjects()
def getProjects() {
println '--------------'
println '---Root Project---'
println '---------------'
this.getAllprojects().eachWithIndex { Project project, int index ->
if (index == 0) {
println "---Root Project '${project.name}'"
} else {
println "---+--- Project '${project.name}'"
}
}
}
this.getChildProject()
//获取子Project
def getChildProject() {
println '--------------'
println '---Sub Project---'
println '---------------'
this.getSubprojects().eachWithIndex { Project project, int index ->
println "---+--- Project '${project.name}'"
}
}
def getParentProject() {
def name = this.getParent().name
println "the parent project is ${name}"
}
def getRootProject2() {
def name = this.getRootProject().name
println "the root project is ${name}"
}
在根Project中操作子Project
/**
在根Project中操作子Project*/
project('app') { Project project ->
apply plugin: 'com.android.application'
dependencies {}
android {}
}
project('androidsdk') { Project project ->
apply plugin: 'com.android.library'
dependencies {}
}
//配置当前节点工程和其subproject的所有project
allprojects {
group 'com.gs'
version '1.0.0'
}
println project('Test').group
//不包括当前节点工程,只包括它的subproject
subprojects { Project project ->
}
四、文件API