Android Gradle 插件(二)

Android Gradle 插件(一)

自定义插件

    1. 新建 Android 工程
    1. 创建新的 Java Module
    1. 在 模块的 build.gradle 文件中添加
apply plugin: 'groovy'

dependencies {
    implementation gradleApi()
    implementation localGroovy()
}
    1. 将 src/main/java 修改为 src/main/groovy
    1. 在groovy文件夹下创建包及*.groovy文件
package com.mazaiting
import org.gradle.api.Plugin
import org.gradle.api.Project

class Pgyer implements Plugin {

    @Override
    void apply(Project project) {
        // 创建任务
        project.task("hello") {
            doLast {
                println "finish"
            }
        }
    }
}
    1. 在 src/main 下创建resources/META-INF/gradle-plugins文件夹
    1. 在gradle-plugins文件夹下创建*.properties文件, 后面的com.mazaiting.Pgyer为自定义类的全路径名
implementation-class=com.mazaiting.Pgyer
    1. 文件模块路径
Android Gradle 插件(二)_第1张图片
文件模块路径.png
    1. 在 build.gradle 增加 maven 插件
//导入maven插件
apply plugin: 'maven'

//发布代码到本地
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: uri('../repo'))//仓库路径,此处是项目目录下的repo文件夹
            pom.groupId = 'com.mazaiting.plugin'//groupid自行定义,一般是包名
            pom.artifactId = 'pgyer'//自行定义
            pom.version = '1.0.0'//版本名称
        }
    }
}
    1. 同步后, 上传本地 maven 库
./gradlew uploadArchives
    1. 在项目根目录下新增 repo 文件夹, 文件目录文件如下
Android Gradle 插件(二)_第2张图片
repo目录.png

使用

    1. 在项目根目录下的 build.gradle 文件中添加
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        // ...
        // maven 本地库
        maven {
            url uri('repo')
        }
    }
    dependencies {
        // ...
        // 自定义插件
        classpath 'com.mazaiting.plugin:pgyer:1.0.0'
    }
}

allprojects {
    repositories {
        // ...
        // maven 本地库
        maven {
            url uri('repo')
        }
    }
}
    1. 在 app/build.gradle 文件中新增
apply plugin: 'com.mazaiting'
    1. 执行新增任务
./gradlew hello

你可能感兴趣的:(Android Gradle 插件(二))