gradle插件编写
来源:互联网 发布:蚁群算法 编辑:程序博客网 时间:2024/06/06 20:29
插件类别
二进制插件
可以以二进制形式发布和使用,如apply plugin:’com.android.library’
脚本插件
以.gradle脚本形式引用,模块化脚本,如apply from :”script path” 可参考ReactNative 打包脚本;可以直接在脚本中使用groovy编写插件
插件编写
1.在脚本中直接编写
在gradle脚本中可以直接使用groovy编写插件
定义插件类实现Plugin接口
2.在当前项目下编写
在当前项目下的buildsrc目录下编写插件
3.独立项目
创建独立的project或当前目录下创建module
目录结构
其中resources目录下properties文件的文件名与使用插件时的插件名要保持一致
implementation-class=com.xxxx.xxxx.PatchPlugin
在该文件中指定了定义插件的groovy类路径
插件依赖
基本需求:添加gradleapi依赖和groovy依赖
使用Transform API需要添加Transform Api依赖
在gradle中使用了guava,如果插件中使用guava,需要注意guava版本不要与当前版本gradle使用的guava冲突
发布
可以使用maven 插件发布编写完成的gradle插件,上图是把插件发布到当前目录下,也可配置成发布到某一maven仓库
Extension
Extension用于在脚本中配置插件所需要的一些属性信息。
创建Extension实体类
在plugin中创建Extension对象,注意脚本中的配置字段与这里的字符串常量一致
在代码中使用,直接以project对象属性的方式引用
在脚本中配置
Task相关
Task是gradle构建中的基本独立单元,代表了构建中的一个独立步骤如代码编译,doc文档生成,生成jar包
gradle本身提供了一些基础的Task如Copy、Delete、File等
在脚本中可以直接使用task taskName(){}声明一个Task,可以使用type:继承自内建的Task,如:
task clean(type: Delete) { delete project.buildDir}
可以使用dependsOn指明Task的依赖关系,使用<<、doFirst、doLast向Task中追加操作
在groovy文件中可以使用project.task(“taskname”){}创建task,详见gradleApi文档。
More
Configuration相关
参考文献
Gradle Api 文档
gradle自定义插件
ReactNative
- Android Gradle 插件编写
- gradle插件编写
- 编写Gradle插件配合ASM框架实战
- 为Android Studio编写自定义Gradle插件的教程
- Gradle之使用Android Studio 编写Gradle插件并上传Library到JCenter
- Gradle 1.12用户指南翻译——第五十八章. 编写自定义插件
- 插件编写
- 插件编写
- Eclipse 安装Gradle插件
- Gradle android 插件现况
- gradle的jetty插件
- gradle的war插件
- gradle的gretty插件
- eclipse安装gradle插件
- Elcipse安装gradle插件
- Eclipse 安装Gradle插件
- Android Gradle插件学习
- Eclipse配置Gradle插件
- 我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人
- FreeRTOS系列第2篇---FreeRTOS入门指南
- xjoi奋斗群群赛3
- Java中OutOfMemoryError(内存溢出)的两种情况及解决办法
- 「python」__init__()方法
- gradle插件编写
- 矩形碰撞公式,以前还做j2me时就用到的公式,为了方便查找,这里记一下
- Git忽略规则
- Swift数据类型
- Android第八天
- div中文字上下居中
- 工厂模式
- 3dmax基本操作
- 利用JMeter的beanshell进行接口的加密处理