Android 中许多优秀的开源框架都会自定义 Gradle 插件,比如,热修复的 Tinker 。
所以,这篇文章记录 Android Studio 中如何自定义 Gradle 插件。
Gradle
Gradle 是个的构建工具,也是Android Studio 默认的构建工具,与传统的 Ant 、maven 相比,Gradle 更加强大。利用 Gradle 这个工具,我们能做很多事情,例如热修复、插件化等等。
当然,这篇文章不会将具体的 Gradle 语法,这篇文章只会记录如何创建一个Gradle 插件。
如果你想彻底理解并应用 Gradle ,推荐看这系列文章 Gradle for Android 。
Gradle 插件是使用 Groovy 语言进行开发的,而 Groovy 是可以兼容 Java 的。Android Studio 除了开发 APP 外,完全可以开发 Gradle 插件。
插件开发
现在来说下,详细的 Gradle 插件开发步骤:
新建一个项目
再新建一个 Module,此 Module 用于开发插件,类型选什么都无所谓,后面会大改。
在 Project 目录视图模式下,清空 build.gradle 文件的内容,删除其余的所有文件。
然后在 module 中新建多个文件夹
src/main/groovy
,再新建包名文件夹。 在 main 目录下再新建resources
目录,在resources
目录下再新建META-INF
文件夹,再新建文件夹gradle-plugins
,这样就完成了 gradle 插件的目录结构搭建,整个目录结构如下。打开
build.gralde
文件,替换全部内容apply plugin: 'groovy' apply plugin: 'maven' dependencies { compile gradleApi() //gradle sdk compile localGroovy() //groovy sdk } repositories { jcenter() }
现在,就可以来正式写插件内容了。在刚刚新建的包名下 再次新建一个文件
MyPlugin.groovy
,注意文件类型,一定是groovy
类型文件,刚开始没注意,直到出了问题,排查时,打开本地文件才发现文件没有后缀名称。package com.app.plugin import org.gradle.api.Plugin import org.gradle.api.Project public class MyPlugin implements Plugin<Project> { void apply(Project project) { def log = project.logger