栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android之gradle自定义插件实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android之gradle自定义插件实现

Android之Gradle自定义插件实现
  • Gradle插件实现基本概况
  • 1、build script 脚本
  • 2、buildSrc目录
  • 3、独立项目(推荐,有用,一般插件都这样写)
    • 定义插件
    • 使用插件

Gradle插件实现基本概况

Gradle插件的三种方式,如下表所示:

插件实现方式解释说明
Build script 脚本把插件写在build.gradle文件中,一般用于简单的逻辑,只在该build.grade文件可见
buildSrc目录将插件源代码放在buildSrc/src/main中,只对该项目可见
独立项目一个独立的Java项目/模块,可以将文件包发布到仓库(Jecenter,Maven),使其他项目方便引入

下面分别对三种方式一一说明,

1、build script 脚本

这种方式实现的插件只有build.gradle文件可见,例如在app的build.gradle中,插件名PluginDemo实现方式:

apply plugin: PluginDemo //引入插件

//定义插件
class PluginDemo implements Plugin {

    @Override
    void apply(Project project) {
        println '第一种方式实现插件'
    }
}


运行gradlew会打印上面内容

2、buildSrc目录

这是一个系统特有的识别的module,会自动识别
打开AS——>File——>New Module——>选择Java or Kotlin Library

填写Libbray Name一定要是 buildSrc.否则系统识别不了这个插件,创建完成之后如下

另外注意 在setting.gradle中要去掉对buildSrc的配置,无需配置;

开始创建插件类Plugin2Dmeo,

package com.xiaomi.app;

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

public class Plugin2Demo implements Plugin {
    @Override
    public void apply(Project project) {
        System.out.println("第二种方式实现插件");
    }

}

之后需要配置一下,才可以使用,在main下面创建
resources/meta-INF/gradle-plugins/com.xiaomi.plugin.properties文件
解释一下,这个名称com.xiaomi.plugin就是我们项目中引入名称,我们可以任意取
里面内容implementation-class,里面配置的是插件的类名

在app.gradle模块中引入

这里浅蓝色方框中的名字就是properties的名称;
运行gradlew,发现第二种方式的插件实现完毕;

3、独立项目(推荐,有用,一般插件都这样写)

这种方式实现的插件可以发布到本地,jcenter仓库或者Maven仓库;
它的实现过程和第二种方式类似,有一些步骤不一样,大体雷同;
大体过程分为自定义插件和使用插件,首先自定义插件的过程是:

定义插件

一、创建一个java lib库 自己随意去一个名字

二,在这个插件的build.gradle中加入下面的依赖以及class类中实现Plugin接口
build.gradle

apply plugin: 'groovy'
dependencies {
    implementation gradleApi()
}

java类

package com.huawei.plugin;

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

public class MyPlugin implements Plugin {
    @Override
    public void apply(Project project) {
        System.out.println("第三种方式实现插件my plugin");
    }
}

三、配置清单文件
在main文件夹下面新建resources/meta-INF/gradle-plugins,建完这三个文件夹之后,我们要建一个后缀为.properties的文件比如com.huawei.plugin.properties

这个文件里面的配置是:

implementation-class = com.huawei.plugin.MyPlugin

四,发布到仓库(这里弄到本地仓库)
在插件的build.gradle添加如下脚本:

apply plugin: 'maven-publish'

publishing {
    publications {
        MyPlugin(MavenPublication) {
            from components.java
            groupId 'com.huawei'
            artifactId 'plugin'
            version '1.0.0'
        }
    }
}

单击 rebuild,进行编译,之后在打开Gadle

双击3的位置,进行本地发布

使用插件

在整个工程的build.gradle中添加如下:

buildscript {
    repositories {
        google()
        jcenter()
        mavenLocal() //默认路径在C:/Users/用户名/.m2/repository下面,(本机电脑)
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.1"
        classpath 'com.huawei:plugin:1.0.0'//引入插件
    }
}

在app的build.gradle中添加

apply plugin: 'com.huawei.plugin'

这样就结束了,运行gradlew之后,插件就正常了;

以上是本人总结的简易的插件方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/606144.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号