android的gradle插件用了不少了,比如说官方的应用构建插件(com.android.application),lib构建插件(com.android.library),还有第三方的比如辅助multidex的DexKnifePlugin。gradle 插件但是怎么自己创建一个gradle插件一直不明白,今天就试一试自己撸一个android gradle插件,毕竟实践出真知。
基础知识
首先得知道一个gradle插件有需要哪些元素。
我们以android的application插件为例,往往有如下代码,这些代码到底是什么?
//root build.gradle dependencies { classpath com.android.tools.build:gradle:2.2.3 }//app build.gradleapply plugin: com.android.application属性值备注pluginIdcom.android.application对应一个Plugin类groupIdcom.android.tools.buildartifactIdgradleversion2.2.3
以上是一个gradle插件必须的属性。然后既然是gradle 插件必须实现Plugin接口。groupId、artifactId、version指定了一个插件工程,每个插件工程下可以有若干个插件(每个插件一个pluginId)
创建gradle插件
首先选择科学工具IntelliJ,之前在groovy入门指南1里面已经配置好了groovy和IntelliJ的环境,所以可以直接搞起来。
1、打开IJ(IntelliJ),new->gradle->选上java和groovy->Next,如下图所示
2、选择groupId和artifactId以及版本。这3个是就是我们说的gradle插件四属性的3个,他们可以确定classpath
这里我们配置如下,注意版本号写1.0
3、勾上use auto-import和 create directories for empty..,这样会帮我们自动导包并创建好groovy和java根目录
4、just next
5、第一次创建gradle工程,他会去下载2个jar,junit:4.11和org.codehaus.groovy:groovy-all:2.3.11,这个下载过程非常慢(好吧,其实是公司网络比较坑),耐心等待。
6、jar包下载好之后,会自动创建main和test文件夹(其实gradle默认工程的创建也是在执行gradle任务),此时文件结构如下,注意groovy和java文件夹为蓝色的
7、在build.gradle的dependencies里面加入
compile gradleApi() compile localGroovy()8、在groovy文件夹下创建一个package,包名随便起,就叫com.fish好了,然后在里面new一个groovy类就叫FirstPlugin好了,并且让FirstPlugin实现Plugin接口,这个Plugin是org.gradle.api.Plugin。然后实现apply接口,加点代码,最后代码如下,我们创建了一个task叫做showTipTask,task在funny这个group内(我们可以对task进行分组,待会会明白),showTipTask只是打印出一行文字。description是对这个task的描述,当用户执行./gradlew tasks会显示出来。gradle 插件
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-35525-1.html
请拿出当年“保卫珍宝岛
现在前两条中国领先了
鹅肝
这也是一种方法