今天我们来讲解下自定义 gradle 插件的方式和如何上传到 Jcenter 仓库。
自定义
插件开发可以用很多种方式,今天我们来讲讲。
- 在 build.gradle 中直接定义
- 在Android 项目中 ,创建 buildSrc 目录
- 通过 module 方式创建
- 使用 idea 创建单独的项目
重要:自定义 plugin 里面没有语法检测,所以出现语法问题的话,就会报错
* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'myCustomPlugin']
> No such property: traget for class: com.ruoyun.TwoPlugin
那么我们开始
1.在 build.gradle 中直接定义
这样定义只能作用在定义的子项目中。
定义在 app 目录下的 build.gradle 文件中。
我们定义一个叫 TestPlugin 的插件,然后继承 Plugin<Project>
。
创建属性e1、e2,用来从外部获取参数,然后在插件中就可以直接使用。
/**
* 分别定义Extension1 和 Extension2 类,申明参数传递变量
*/
class Extension1 {
String testVariable1 = null
}
class Extension2 {
String testVariable2 = null
}
/**
* 插件入口类
*/
class TestPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
//利用Extension创建e1 e2 闭包,用于接受外部传递的参数值
project.extensions.create('e1', Extension1)
project.extensions.create('e2', Extension2)
//创建readExtension task 执行该task 进行参数值的读取以及自定义逻辑...
project.task('readExtension') {
//gradle 5.0 优化了 << 替换成 doLast
doLast {
println 'e1 = ' + project['e1'].testVariable1
println 'e2 = ' + project['e2'].testVariable2
}
}
}
}
在 app 目录下的 build.gradle 文件中,使用此插件,代码如下:
apply plugin: 'com.android.application'
apply