我就不说那么多废话,直接上图一个一个步骤来,看得更清晰
步骤一:创建插件项目
描述:新建android项目后,再建一个module,然后删掉一些不必要的文件,如下所示:
步骤二:新建groovy文件夹
步骤三:新建MyPlugin.groovy文件,后缀名是groovy。
MyPlugin的内容,看着就跟java一样,因为groovy也是jvm语言,是兼容java的。
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
System.out.println("========== this is MyPlugin ==========")
}
}
步骤四:新建resouces文件夹,接着在之下建META-INF文件夹,最后在META-INFO之下建gradle-plugins文件夹。
步骤五:新建 *.properties文件
*.properties 文件名是插件的剪短名称(id),用于应用插件。
*.properties 文件内容配置了插件实现类的映射,需要使用implementation-class来指定插件实习类的全限定类名。
properties文件内容:implementation-class=com.asm.plugin.MyPlugin
步骤六:本地上传插件
plugins {
id 'groovy' // (必选)用于实现插件
id 'maven' // (mavenDeployer 插件)用于发布插件
}
dependencies {
implementation gradleApi()
implementation localGroovy()
}
// 设置源文件路径
sourceSets {
main {
groovy {
srcDir 'src/main/groovy'
}
resources {
srcDir 'src/main/resources'
}
}
}
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = 'com.river.plugin'
pom.artifactId = 'asm.plugin'
pom.version = '1.0.0'
//生成的插件存放地址
repository(url: uri('D:/Repo'))
}
}
}
步骤七:应用插件
新建一个demo
在根项目的build文件里,写上: classpath ‘com.river.plugin:asm.plugin:1.0.0’
然后在app里的build文件里,写上如下的,作为引用
plugins {
id ‘com.android.application’
id ‘kotlin-android’
id ‘myplugin’
}
完整如下
buildscript {
ext.kotlin_version = "1.4.30"
ext.compose_version = '1.0.0-beta03'
repositories {
google()
jcenter()
maven{
url uri('D:/Repo')
}
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.3"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.river.plugin:asm.plugin:1.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
步骤八:运行
如果控制台打印出上面的一行日志,说明插件引用成功。