一、gradle基本概念讲解

Gradle实战一

优势:

  • 灵活性好 
  • 粒度性上
  • 兼容性 

二、gradle执行流程讲解

Gradle实战一

 

Project的build.gradle

/**
 *配置阶段开始前的监听回调
 */
this.beforeEvaluate {}

/**
 *配置阶段完成以后的监听回调
 */
this.afterEvaluate {
    println '配置阶段执行完毕。。。'
}

/**
 *gradle执行完毕后的回调监听
 */
this.gradle.buildFinished {
    println '执行阶段执行完毕。。。'
}

this.gradle.beforeProject {}

this.gradle.afterProject {}

 三、Project核心API分解

Gradle实战一

代码:获取所有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

Gradle实战一

 

 

相关文章: