一篇文章学会(分享一篇文章《学会欣赏自己》)
首发

一篇文章学会(分享一篇文章《学会欣赏自己》)

优质
请用语音读文章

1 Gradle是一种编程框架gradle主要由以下三部分组成

1 groovy核心语法2 build script block3 gradle api注:本章任何的代码都在

如下图

2 Gradle的优势1 更加的灵巧。因为gradle是编程框架。所以功能要厉害的多2 粒度性上。源码的编译。资源的编译。都是一个一个Task的。我们可以改写task来达到细腻控制上3 扩展性上。gradle有插件机制以上任何的优势其实全因为Gradle是一种编程框架

3 Gradle的生命周期Gradle生命周期分为三个部分。如下:

1 初始化阶段: 分析整个工程中任何Project,构建任何的Project对应的project对象。这种阶段主要就是分析setting.gradle文件2 配置阶段:分析任何的projects对象中的task。构建好任何的task拓扑图。主要分析各个project下的build.gradle文件3 执行阶段:执行详细的的task及其依赖task如下图

4 Gradle的生命周期的监听在root build.gradle中。添加如下代码

/** * 配置阶段开始前的监听回调 */this.beforeEvaluate { println '配置阶段开始111…'}/** * 配置阶段后的监听回调 */this.afterEvaluate { println '配置阶段执行完毕222…'}/** * gradle执行完毕后的回调 */this.gradle.buildFinished { println '执行阶段执行完毕…'}//等同于 beforeEvaluatethis.gradle.beforeProject {}//等同于 afterEvaluatethis.gradle.afterProject { println '配置阶段执行完毕333…'}之后跟着运行 ./gradlew build,就会输出相对应的log

5 Project详细解答在gradle中。project就貌似是android中的activity一样。总是使用。所以project概述是一个非常重要的概念

在android工程中。任何的lib,module都是一个project

调查任何的project

./gradlew projects//输出如下————————————————————Root project————————————————————Root project 'gradledemo'+— Project ':app'+— Project ':mylib'+— Project ':test'\— Project ':utils'

可以观看到的目前工程下有5个 proejct。之中有一个根 project。剩下的4个是子project,可以观看到的project是树的结构。根project的作用就是用来管理子project怎么样管理呢?就是通过相对应的api进行管理。后面有讲到。每一个project都对应一个输出

每一个project都有一个build.gradle文件。build.gradle文件也是project的标识

5.1 Project核心api

1 gradle 生命周期api2 project有关api3 task有关api4 属性有关api5 file有关api6 其它api在gradle中。一个build.gradle文件会被编译成proejct字节码。所以在build.gradle中编编辑的任何的代码等于都是在proejct中类内部编编辑的

输出任何的proejct

//在根project下的build.gradle中。获得任何的project。添加如下代码//调用途径getProjects()//获得任何的projectdef getProjects(){ println '————' println 'Root Project' println '————' //getAllprojects()返回任何的Project的set集合 this.getAllprojects().eachWithIndex { Project project, int index – if(index == 0){ println "Root protject :'${project.name}'" }else{ println "+— project '${project.name}'" } }}//运行 ./gradlew clean,输出如下:————Root Project————Root protject :'gradledemo'+— project 'app'+— project 'mylib'+— project 'test'+— project 'utils'

输出任何的子project

//在根project的build.gradle中。输出任何的子prject//打印任何的子projectgetAllSubprojects()def getAllSubprojects(){ getSubprojects().each { project – println "—- ${project.name}" }}//输出—- app—- mylib—- test—- utils获得父project的名字

//获得根project的名字。在根project中调用返回null,在子project下调用打印出父project的名字getParentProjectName()def getParentProjectName(){ def project = getParent() if(project != null ){ println "父project的名字是: " + project.name }else { println '没有父project' }}获得根project的名字

getRootPro()def getRootPro(){ println "根project的名字是:" + getRootProject().name}//运行 ./gradlew clean 。输出:根project的名字是:gradledemo在根project对子project进行配置

/** * 可以在根project下对任何的子project进行配置。如下代码 * 所有在子project中的build.gradle文件中可以配置的东西 * 都可以在下面的代码中进行配置 */project("app") { apply plugin: 'com.android.application' group 'com.zhj' version '1.0.0' dependencies { } android { }}project('mylib') { apply plugin: 'com.android.library' group 'com.zhj' version '1.1.1' dependencies { }}为任何的project进行统一的配置

/** * 配置目前结点工程和它的任何的任何的subproject * 例如将任何的project的group配置为 'com.zhj' */allprojects { repositories { google谷歌() jcenter() } group 'com.zhj'}//测试在allprojects中配置的group属性println "test工程的group是 : " + project('test').group//输出test工程的group是 : com.zhj只对子project进行配置

/** * 和allprojects不一样的是。subprojects不包括目前工程。只包括子project */subprojects { Project project – if(project.hasproperty('com.android.library')){ //将库工程编译的库上传到maven中 }}gradle 中对project的管理是以树的形式进行管理的。根project主要就是对子Project进行管理。可以查找。可以获得任何的子project。同一时间在子project中也完全可以获得根proejct或者父project的消息。同一时间。一个project对应于一个build.gradle文件。build.gradle文件也是判断是不是project的标志。project是非常重要的概念。下面是官网的文档

以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

人生感悟的句子唯美简短(唯美简短励志句子)

请用语音读文章世界上没那么多人在乎你。所有努力都还是为自己。为了做自己喜欢的事情的[...

远古灭绝的十大可怕动物(18种已经灭绝的可怕动物)

请用语音读文章在远古时期。地球上就已经有各种动物生存着。它们中的一部分一直繁衍存活[...

怎么屏蔽百度广告(\’怎么关闭百度广告\’)

请用语音读文章如何屏蔽电脑百度搜索广告如何屏蔽掉电脑网页上的小广告。很多朋友在使用[...

怎么做广告推广(传统广告怎么玩得更好)

请用语音读文章最近。朋友交流圈广告被炒的火热。这貌似是未来广告的一种新趋势。这种投[...

发表评论

您的电子邮箱地址不会被公开。