Android 創建一個最簡單的Gradle插件

創建最簡單的Plugin

在app的gradle中,添加如下代碼

class MyPlugin implements Plugin<Project>{
    @Override
    void apply(Project target){
        println "hello world!"
    }
}

apply plugin: MyPlugin

然後,點擊Sync Project with Gradle Files,可以看到,日誌裏輸出了Hello world
在這裏插入圖片描述

創建Extension擴展

apply plugin: 'kotlin-android-extensions',這些是Plugin的擴展,我們也可以實現一個Plugin擴展。

首先,在app的gradle中新建一個class

class MyExtension {
    def name = 'Heiko'
}

然後在Plugin中進行使用

class MyPlugin implements Plugin<Project>{
    @Override
    void apply(Project target){
        //創建擴展對象
        def extension = target.extensions.create('myExt',MyExtension/*.class可不寫*/)
        println "hello world! My name is ${extension.name}!"
    }
}

apply plugin: MyPlugin

再次運行,可以看到,打印出了
hello world! My name is Heiko!

如何動態配置

如果想要name動態配置,那麼需修改爲如下形式

class MyPlugin implements Plugin<Project> {
    @Override
    void apply(Project target) {
        //創建擴展對象
        def extension = target.extensions.create('myExt', MyExtension/*.class可不寫*/)

        target.afterEvaluate {
            //在整個文件執行完成之後,再執行
            println "hello world! My name is ${extension.name}!"
        }
    }
}

class MyExtension {
    def name = 'Heiko'
}

apply plugin: MyPlugin

myExt {
    name 'foiefjdlfjd' //最終調用 setName('foiefjdlfjd')
}

運行後,可看到打印日誌 hello world! My name is foiefjdlfjd!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章