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就成功添加到项目中了。

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