1、自定义插件的方式
类似于自定义task,gradle自定义插件的方式也是三种,而且步骤和自定义task基本类似,这里详细描述一下写在buildSrc项目中的方式。
2、buildSrc项目的搭建
参照自定义task的方式建立项目目录,然后自定义一个插件:HelloGradlePlugin.groovy:
package demo.gradle.plugin
import org.gradle.api.Plugin
import org.gradle.api.Project
class HelloGradlePlugin implements Plugin<Project>{
@Override
void apply(Project project) {
project.task("MyCustomTask",type : HelloGradleTask){
println("Hello,Gradle Custom Plugin")
}
}
}
HelloGradleTask.groovy如下:
package demo.gradle.plugin
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
class HelloGradleTask extends DefaultTask{
@TaskAction
void sayHello(){
println("Hello,Gradle Custom Task!")
}
}
3.插件的使用
以上定义好的插件,项目中如何使用呢?主要步骤如下:
新建目录src/main/resources/META-INF/gradle-plugins/,然后在该目录下面添加
一个properties文件,这里为:demo.gradle.plugin.properties,内容为:
implementation-class=demo.gradle.plugin.HelloGradlePlugin
最终项目结构如下:
然后在主项目中的build.gradle添加:
apply plugin: 'demo.gradle.plugin'
需要注意的地方就是,apply plugin依赖的插件id,
是和demo.gradle.plugin.properties文件名一致的。