首先,我们新建一个项目,然后新建一个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就成功添加到项目中了。