1. build script 方式
在 app 下的 build.gradle 中定义:
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
println "GreetingPlugin"
}
}
//应用插件
apply plugin: GreetingPlugin
改进方案,在根目录下创建一个 script 文件夹,文件夹中添加文件 GreetingPlugin.gradle
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
println "GreetingPlugin"
}
}
//应用插件
apply plugin: GreetingPlugin
其他地方可以添加 apply from: '../script/GreeingPlugin.gradle' 引用该插件
2.buildSrc 方式
创建一个名为 buildSrc 的 module,修改文件结构如下
buildSrc
├── build.gradle
└── src
└── main
├── groovy
│ └── com
│ └── zzh0838
│ └── gradle
└── resources
└── META-INF
└── gradle-plugins
└── com.zzh0838.gradle.plugins.properties
com.zzh0838.gradle.plugins.properties 用于指定插件的名称以方便被引用:
implementation-class=com.zzh0838.gradle.plugins.HelloPlugin
在 com.zzh0838.gradle 目录下创建 HelloPlugin.groovy:
class HelloPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
println 'Hello Plugin ' + project.name
}
}
最简单的 gradle 就编写好了,我们可以在 app 的 build.gradle 中使用:
plugins {
id 'com.android.application'
id 'com.zzh0838.gradle.plugins'
}
3.独立项目
参考 ./source 目录下的 GradlePluginDemo
新建个 Android Library,添加 settings.gradle,修改 gradle.build 如下:
plugins {
id 'groovy'
id 'java-gradle-plugin'
}
dependencies {
implementation gradleApi()
implementation localGroovy()
}
gradlePlugin {
plugins {
standaloneGradlePlugins {
id = "com.oldboy.custompluginone"
implementationClass = 'com.oldboy.custompluginone.PluginOne'
}
}
}
group 'com.oldboy.custompluginone'
version '1.0.0'
main 下新建 groovy 目录,建好包 com.oldboy.custompluginone,然后在包内写我们的插件:
package com.oldboy.custompluginone
import org.gradle.api.Plugin
import org.gradle.api.Project
class PluginOne implements Plugin<Project> {
@Override
void apply(Project project) {
println "自定义插件 PluginOne"
}
}
在 app 中引用我们的插件
根 settings.gradle 中添加:
includeBuild './CustomPluginOne'
根 build.gradle 中添加:
plugins {
......
id 'com.oldboy.custompluginone' version '1.0.0' apply false
......
}
在 app/build.gradle 中添加
plugins {
......
id 'com.oldboy.custompluginone'
......
}
网友评论