【项目构建工具】 Gradle笔记2

一.Gradle执行流程

  1.Gradle的执行流程(生命周期)主要是三个阶段:

    初始化阶段:解析整个工程中所有Project,构建所有的Project对应的project对象

    配置阶段:解析所有的projects对象中的task,构件号所有的task的拓扑图

    执行阶段:执行具体的task及其依赖task

  2.Gradle执行流程的监听:

    在settings.gradle中打印一句话(Gradle初始化阶段会执行settings.gradle文件)

println "初始化阶段开始执行"

    在build.gradle中配置监听,这几个监听本质还是回调方法添加代码如下

//配置阶段开始前进行监听
this.beforeEvaluate {//等效与this.gradle.beforeProject
    println "配置阶段执行前"//注意:直接这样配置是不会生效的,因为Project还没配置好,但它可以在父工程的中配置对子模块阶段的监听
 }
//配置阶段完成后进行监听
this.afterEvaluate {//等效与this.gradle.afterProject println
  "配置阶段完成后"
}
//执行阶段完毕后进行监听
this.gradle.buildFinished {
  println "执行阶段完毕后"
}

    测试:在控制台中输入gradle clean,输出如下

    

二.Project

  1.对于Gradle来说,Gradle项目中的父工程是一个Project,但每一个子模块也是一个Project(只要有build.gradle文件,都算是Project),可以输入gradle projects查看整个项目中的Project。或者编写如下代码,并执行Gradle任务

//获取全部Project
this.getProjects()
def getProjects(){
    println this.getAllprojects()//获取当前模块及其子模块的Project
}

  2.父Project对子Project的操作,例如在父Project中的build.gradle中配置子Project的组名,版本号,依赖等(如果在父Project中配置了,子Project中不需要再配置)

project('gradle-study-child'){
    group ''
    version ''
    dependencies{
        
    }
}

  3.如果需要配置父Project及所有子Project,可以使用allproject,如果只需配置所有的子Project,可以使用subproject

allproject{
    //略
}

   4.文件属性

    在gradle中,可以通过apply from导入外部文件配置,除此以外,还有很多与文件相关的操作,

    1.获取路径

println getProjectDir().absolutePath//获取Project路径
println getBuildDir().absolutePath//获取build文件夹路径
println getRootDir().absolutePath//获取工程根路路径

    2.获取文件

def findFile(String filePath){
    def file = file(filePath)//获取指定路径的文件
    return file.text//返回文件内容
}

    3.拷贝文件

copy{
    from file('test.txt')//源文件路径
    into getBuildDir()//拷贝后的路径
    rename{}//重命名拷贝后的文件
}

    4.依赖相关

buildscript {
    //配置工程的仓库地址
    repositories {
        mavenCentral()//使用maven中央仓库
        mavenLocal()//使用maven本地仓库
        //更多方法可以查看api文档
    }
    //配置工程的插件依赖地址
    dependencies {}
}

    更多Project相关内容可以在API上查看

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐