Android插件

可紊 提交于 2020-01-16 05:58:16

资料:https://zhuanlan.zhihu.com/p/33017826

/**
 * 分别定义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') {
            println 'TestPlugin apply'
            println 'e1 = ' + project['e1'].testVariable1
            println 'e2 = ' + project['e2'].testVariable2
        }
    }
}
/**
 * 依赖我们刚刚自定义的TestPlugin,注意 使用e1 {} || e2{} 一定要放在apply plugin:TestPlugin 后面, 因为 app plugin:TestPlugin
 * 会执行 Plugin的apply 方法,进而利用Extension 将e1 、e2 和 Extension1 Extension2 绑定,编译器才不会报错
 */
apply plugin: TestPlugin

e1 {
    testVariable1 = 'testVariable1'
}
println 'testVariable1-----------'
e2 {
    testVariable2 = 'testVariable2'
}

println 'testVariable2-----------'

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!