Gradle Plugins
一、plugin 的基本写法
-
直接在build.gradle 中,声明一个Groovy 类继承 Plugin,并执行该任务 class MyTask implements Plugin<Project> {
@Override
void apply(Project project) {
println 'hello'
}
}
apply plugin: MyTask
-
使用跟build.gradle 中的 android 一样声明属性 android {
compileSdk 31
}
-
2.1 定义一个 User 类,并声明一个属性 class User {
def name = "cx"
}
-
2.2 修改 MyTask 代码 class MyTask implements Plugin<Project> {
@Override
void apply(Project project) {
def extension = project.extensions.create("user", User)
project.afterEvaluate {
println "hello ${extension.name}"
}
println 'hello'
}
}
-
2.3 就可以类似于 android 标签一样来给属性赋值,这里的标签名称和 project.extensions.create(“user”, User) 中的第一个参数保持一致 user {
name "wangkai"
}
-
2.4 执行任务,输出 ‘hello wangkai’ apply plugin: MyTask
-
完整代码 class MyTask implements Plugin<Project> {
@Override
void apply(Project project) {
def extension = project.extensions.create("user", User)
project.afterEvaluate {
println "hello${extension.name}"
}
println 'hello'
}
}
apply plugin: MyTask
user {
name "wangkai"
}
class User {
def name = "cx"
}
二、写在 buildSrc 中
-
新建 buildSrc Module,并删除 setting.gradle 下的 include ‘:buildSrc’ -
更改buildSrc 中的目录结构,如下 -
在app 的 build.gradle 中使用插件名称调用任务 apply plugin: 'com.cx.plugindemo'
user {
name "AAAAA"
}
|