Gradle Plugin创建流程记录

1. 新建android module.

module名就叫做asm_lifecycle_plugin(可以随意起)吧

2. 删掉module下的src/main/下的所有文件夹

3. 修改mudule下的build.gradle,

build.gradle内容如下

apply plugin: 'groovy'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    compile gradleApi()
    compile localGroovy()
    compile 'com.android.tools.build:gradle:3.6.3'
}

4. 实现Plugin逻辑

src/main/下创建groovy文件夹, 添加包名com.houtrry.asm_lifecycle_plugin(可以随意起), com.houtrry.asm_lifecycle_plugin下创建groovy文件, LifeCyclePluginDemo.groovy(文件名可以随意, 但是后缀得是groovy).
示例如下,这里只是打印project名字(在plugin中,各个module和主工程app都是project)

package com.houtrry.asm_lifecycle_plugin

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

class LifeCyclePluginDemo implements Plugin {

    @Override
    void apply(Project project) {
        println "===${project.name}===="
    }
}

5.创建resources

src/main 下依次创建三个文件夹, resources\META-INF\gradle-plugins(注意, 这里这三个文件夹的名字是固定的, 不能写错).

6.创建properties

在步骤5创建的文件夹gradle-plugins下创建lifecycle_plugin_properties_file_name.properties文件。
文件内容是

implementation-class=com.houtrry.asm_lifecycle_plugin.LifeCyclePluginDemo

其中 是固定写法,后面的内容是步骤4里继承了Plugin的类的路径
注意:①文件后缀必须是properties。
②文件名可以随便写,但是这个文件名就是后面我们引入插件apply plugin: 'lifecycle_plugin_properties_file_name'时,单引号内传入的插件名

7. 修改module下的build.gradle,添加本地maven相关内容

apply plugin: 'groovy'
apply plugin: 'maven'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    compile gradleApi()
    compile localGroovy()
    compile 'com.android.tools.build:gradle:3.6.3'
}

group = 'com.houtrry.lifecycle_plugin_group'
version = '1.0.0'

uploadArchives {
    repositories {
        mavenDeployer {
            //本地的maven仓库地址设置
            repository(url:uri('../repo'))
        }
    }
}

group和version的内容可以随便写,但是后面会用到
本地maven仓库名repo也可以修改

8.构建项目,上传到本地maven仓库

构建完成后,如图gradle中出现了asm_lifecycle_plugin,双击Tasks/upload下的uploadArchives


image.png

成功后,项目目录下会出现repo文件夹,里面放着生成好的插件信息和文件


image.png

注意:①如果Gradle没有出现asm_lifecycle_plugin,可以查看下setting.gradle中是否include了mudule,如果没有,就加上在build

9.项目中引入plugin

①project下的build.gradle中,buildscript下,repositories里添加maven { url uri('./repo') } 注意,这个repo要和步骤7里设置的maven仓库名一致。dependencies下添加plugin,plugin由3部分组成,plugin mudule下build.gradle中声明的group + plugin mudule名字 + plugin mudule下build.gradle中声明的version


image.png

②app下的build.gralde中 引入plugin依赖
apply plugin: 'lifecycle_plugin_properties_file_name'
单引号内的内容就是步骤6创建的properties文件的文件名


image.png

到这里就算完成了gradle plugin项目的创建了。需要注意的是,如果plugin的内容发生了变化,就需要重新执行一遍步骤8,重新上传到本地maven仓库

你可能感兴趣的:(Gradle Plugin创建流程记录)