文章目录
前言
Android自定义插件,主要分为三种,第一种是自定义脚本插件,第二种是自定义buildSrc插件,第三种是自定义独立插件,接下来对这三种插件逐一介绍,如何使用。
一、自定义脚本插件
自定义脚本插件,简单来说就是在build.gradle文件中,写一份脚本文件代码。
apply plugin: PluginDemo // 引入插件
// 定义插件
class PluginDemo implements Plugin<Project> {
@Override
void apply(Project project) {
println '第一种方式实现插件'
}
}
build一下,会打印以下日志:
Starting Gradle Daemon...
Gradle Daemon started in 587 ms
...
> Configure project :app
第一种方式实现插件
二、自定义buildSrc插件
1.新建buildSrc Module文件
在项目中新建一个buildSrc(名字要一致) Module文件,并且将settings.gradle文件下include buildSrc删除。
2.创建脚本代码和配置文件
脚本代码:
配置文件(配置文件要和上面的脚本代码报名、类名一致):
另外要注意的是配置文件一定要按META-INF/gradle-plugins创建,要不能会报错。
build.gradle文件:
3.app/build.gradle使用插件
build一下,打印如下日志:
三、自定义独立插件
自定义插件和buildSrc很类似,只不过多了个发布插件到本地。
1.创建Module
2.发布代码
plugins {
id 'groovy'
id 'java'
// id 'org.jetbrains.kotlin.jvm'
// id 'maven-publish'
}
repositories {
google()
mavenCentral()
}
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
groupId "com.example.myplugin"
artifactId 'MyPlugin'
version "1.0.0"
//如果是war包填写components.web,如果是jar包填写components.java
from components.java
}
}
repositories {
maven {
url = "../plugins"
}
}
}
dependencies {
implementation gradleApi()
}
正常情况下,build代码后会出现plugin的publish task
点击publish运行任务,会生成以下文件:
3.容易报错的地方
如果你的gradle环境是7.0以上,会报错,需要将setting.gradle中
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
修改为
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
4.使用插件
build 运行,打印如下日志:
总结
简单总结一下,如果较为简单的插件,可以直接在build.gradle文件下面直接编写一个脚本代码应用,如果单一独立的插件,可以自定义buildSrc下创建插件,如果多个插件,建议自定义插件的方式创建。
Thanks:
三种自定义插件方式
创作不易,觉得不错的话,请点赞、评论鼓励,谢谢。