首先,我們新建一個項目,然後新建一個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就成功添加到項目中了。