Android Studio上的Android项目是通过Gradle构建的,Gradle插件是使用Groovy进行开发的,而Groovy是可以兼容Java,功能强大,兼容性好,所以学习一些基本的Gradle的知识是很有必要的。学习插件开发最开始的目的是实现一个多渠道打包(美团提出的方案),可后来发现Java中对Apk的操作有很多的问题,使用Python没有问题,使用Python又不方便与Gradle系统集成,所以项目就搁置了。
1.项目目录
我们可以通过Android Studio来开发Gradle插件。
(1)新建一个Android项目。
(2)新建一个Module项目,类型选择Java Library。
(3)将新建的Module中除了build.gradle文件外的其余文件全都删除,然后删除build.gradle文件中的所有内容。
(4)在新建的module中新建文件夹src,接着在src文件目录下新建main文件夹,在main目录下新建groovy目录,这时候groovy文件夹会被Android识别为groovy源码目录。除了在main目录下新建groovy目录外,你还要在main目录下新建resources目录,同理resources目录会被自动识别为资源文件夹。在groovy目录下新建项目包名,就像Java包名那样。resources目录下新建文件夹META-INF,META-INF文件夹下新建gradle-plugins文件夹。这样,就完成了gradle 插件的项目的整体搭建,之后就是小细节了。目前,项目的结构是这样的。
2.开发
2.1 配置gradle
在Module中build.gradle中添加下面内容。在这个脚本里使用groovy插件编译groovy源码,声明gradleAPI作为即时编译依赖,apply plugin: ‘maven’ 是用来创建一个插件jar文件并且存储在本地maven库里。
1 | apply plugin: 'groovy' |
2.2 编写插件
创建一个自己的插件,并添加任务
1 | package com.caij.plugin1 |
2.3 指定插件实现类
在gradle-plugins目录下创建一个properties类型的文件,文件名很重要,后面添加插件的时候会用到,apply plugin ‘java’, ‘java’就是文件的文件名。
在properties文件中添加:
implementation-class=com.caij.plugin1.MyCustomPlugin
2.4 编译插件上传本地仓库
运行uploadArchives 任务,等待执行完成
2.5 测试
创建一个Module, 类型选择Android Library, 在Module中build中添加下面内容
1 | buildscript { |
你会看到有一个myTask的任务,执行任务。