Android 新建自定義Gradle插件

首先,我們新建一個項目,然後新建一個Android Library。
在這裏插入圖片描述
我們將library取名爲myplugin
在這裏插入圖片描述
然後,我們要刪除myplugin/src目錄下所有的文件,然後按照下圖創建相關的路徑。

在這裏插入圖片描述

添加依賴關係

修改myplugin/build.gradle

apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    implementation gradleApi() //gradle sdk
    implementation localGroovy() //goovy sdk
}

實現插件

MyPlugin.groovy中添加如下代碼

package com.heiko.myplugin

import org.gradle.api.Plugin
import org.gradle.api.Project

class MyPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
    	//打印日誌
        println("this is my first plugin!")

		//創建一個task,名字叫MyPluginTask
		project.task('MyPluginTask') {
            println("this is my first task!")
        }
    }
}

然後,在com.heiko.myplugin.properties中進行配置

implementation-class= com.heiko.myplugin.MyPlugin

編譯插件

可以點擊myplugin-Tasks-build-build,來編譯插件
在這裏插入圖片描述
然後在項目的myplugin\build\libs目錄下,可以看到生成的插件jar包
在這裏插入圖片描述

發佈插件

一般我們可以把插件發佈到本地或遠程倉庫,這裏我們演示下發布到本地倉庫。

首先,我們在myplugin的build.gradle中,添加如下代碼

apply plugin: 'maven'

uploadArchives {
    repositories.mavenDeployer {
        pom.groupId = 'com.heiko'
        pom.artifactId = 'myplugin'
        pom.version = '1.0.0'
        repository(url: uri('../repo'))
    }
}

然後,我們可以點擊uploadArchives來發布插件
在這裏插入圖片描述
發佈成功後,我們可以在項目的repo\com\heiko\myplugin中看到如下信息
在這裏插入圖片描述

使用Plugin

接着,我們就可以使用Plugin了。
在更目錄的build.gradle中添加如下代碼

buildscript {
    repositories {
        //...
        //配置插件所在的本地倉庫的目錄
        maven {
            url uri('repo')
        }
    }
    dependencies {
    	//...
        //引入插件
        classpath "com.heiko:myplugin:1.0.0"
    }
}

然後在app的gradle中,使用插件

apply plugin: 'com.heiko.myplugin' //使用插件,這裏的名稱就是 com.heiko.myplugin.properties 的文件名

接着編譯項目,我們可以看到日誌
在這裏插入圖片描述

我們也可以運行我們新建的task,點擊MyPluginTask
在這裏插入圖片描述
可以看到打印的日誌
在這裏插入圖片描述
至此,我們新建的Plugin就成功添加到項目中了。

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