- Gradle插件实现基本概况
- 1、build script 脚本
- 2、buildSrc目录
- 3、独立项目(推荐,有用,一般插件都这样写)
- 定义插件
- 使用插件
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会打印上面内容
这是一个系统特有的识别的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,发现第二种方式的插件实现完毕;
这种方式实现的插件可以发布到本地,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之后,插件就正常了;
以上是本人总结的简易的插件方法



