kotlin dsl gradle

这是我参与更文挑战的第4天,活动详情查看:更文挑战

前言:

创建一个android项目默认使用Groovy作为Gradle的语言。而我们也可以更改为我们熟悉的kotlin语言作为脚本进行编写

Groovy DSL脚本文件使用.gradle为后缀而kotlin编写脚本语言的话后缀需更改为.gradle.kts

首先Gradle脚本为配置脚本。当脚本执行时,它会配置一个特定类型的对象。例如,当一个构建脚本执行时,它会配置一个Project类型的对象。此对象称为脚本的委托对象。下表显示了每种Gradle脚本类型的委托。

脚本类型 代理对象
Build script Project
Init script Gradle
Build script Settings

我们在配置脚本时使用对应的代理对象中的方法

构建脚本由多个语句和脚本块组成。语句可以包括方法调用、属性赋值和局部变量定义。脚本块是以闭包作为参数的方法调用。闭包被视为配置闭包,它在执行时配置一些委托对象。下面列出了顶级脚本块。

函数 作用
allprojects { } 配置此项目及其每个子项目
buildscript { } 如果构建脚本需要使用外部库,则可以将它们添加到构建脚本本身的脚本的类路径中
dependencies { } 添加项目的依赖
repositories { } 项目的存储库如jcenter
sourceSets { } 配置项目的源
subprojects { } 配置此项目的子项目
artifacts { } 发布的配置

buildscript中repositories和allprojects中repositories的区别?

buildscript中的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖项、第三方插件、maven仓库地址等。而在build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源

Gradle项目构建生命周期

Gradle的生命周期分三个阶段,初始化阶段init,配置阶段configration,执行阶段excute。

  1. 初始化阶段

    通过setting.gradle判断有哪些项目需要初始化,加载所有需要初始化的项目的build.gradle文件,并为每个项目创建Project对象

  2. 配置阶段

    执行各项目下的build.gradle脚本,完成project配置,并且构造task任务依赖关系图以便在执行阶段按照依赖关系执行Task中的代码

3.执行阶段

通过配置阶段的Task依赖关系图,按顺序执行Task中的动作代码,就是执行Task中写在 doFirst和doLast的代码
动作代码: 任务调用才会执行的代码

相关文章

gradle初探一

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享