Gradle Plugin 了解

Gradle Plugin

虽然不常用 起码要看懂

  • resources/META-INF/gradle-plugins 这个文件夹结构是强制要求的,否则不能识别成插件。

    implementation-class=com.tencent.matrix.plugin.MatrixPlugin

  • 在Gradle插件开发中,所有的插件都要继承org.gradle.api.Plugin接口,并且需要重写void apply(Project project) 方法,这个方法将会传入使用这个插件的 project 的实例,这是一个重要的 context

  • image-20181226112314229.png

create的第一个参数matrix是我们自定义配置的DSL名字,第二个参数是参数类的名字

通过matrix这个DSL这个名字,我们可以任意的改变参数类中相应字段的值。这样就带来了很大的便利。

  • Gradle脚本的执行分为三个过程:

    初始化 :分析有哪些module将要被构建,为每个module创建对应的 project实例。这个时候settings.gradle文件会被解析。

    配置:处理所有的模块的 build 脚本,处理依赖,属性等。这个时候每个模块的build.gradle文件会被解析并配置,这个时候会构建整个task的链表(这里的链表仅仅指存在依赖关系的task的集合,不是数据结构的链表)。

    执行:根据task链表来执行某一个特定的task,这个task所依赖的其他task都将会被提前执行.

  • image-20181226112735974.png

配置完了以后,有一个重要的回调project.afterEvaluate,它表示所有的模块都已经配置完了,可以准备执行task了;

  • Gradle Transform是Android官方提供给开发者在项目构建阶段即由class到dex转换期间修改class文件的一套api。目前比较经典的应用是字节码插桩、代码注入技术
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 说明 本文主要介绍和Gradle关系密切、相对不容易理解的配置,偏重概念介绍。部分内容是Android特有的(例如...
    jzj1993阅读 15,794评论 1 62
  • 这篇文章讲给大家带来gradle打包系列中的高级用法-自己动手编写gradle插件。我们平常在做安卓开发时,都会在...
    呆萌狗和求疵喵阅读 16,066评论 22 80
  • 在 Android Studio 构建的项目中,基于 Gradle 进行项目的构建,同时使用 Android DS...
    Ant_way阅读 7,474评论 0 16
  • Gradle 是一款构建系统工具,它的 DSL 基于 Groovy 实现。Gradle 构建的大部分功能都是通过插...
    任教主来也阅读 3,141评论 3 6
  • 后来有过喜欢 有过悸动 有过红着脸 也有过紧张到不知所措 却再也没有过那般单纯美好的欢喜出现在心底
    致简sunshine单纯阅读 218评论 0 0