一、创建Module
二、添加Gradle插件
plugins {
id 'java-library' // library类型的module必须配置
id 'org.jetbrains.kotlin.jvm' // 此module支持kotlin编写
id 'maven-publish' // 此module支持发布到本地maven
id 'groovy' // 此module 支持groovy语言编写
}
三、添加代码依赖
dependencies {
implementation 'org.ow2.asm:asm-commons:9.2' // ASM库
implementation "com.android.tools.build:gradle-api:7.2" // AGP api库
implementation "com.android.tools.build:gradle:7.2.0" // AGP api库
implementation 'org.jetbrains:annotations:16.0.1' // 注解库
implementation gradleApi() // Gradle Task的一些API 库
implementation localGroovy() // Groovy语言库
}
四、添加发布到本地maven Task
def group = 'com.zhpew.lib' //组
def versionA = '1.0.0' //版本
def artifactIdA = 'myGradlePlugin' //唯一标示
task sourceJar(type: Jar) {
archiveClassifier.set('sources')
from sourceSets.main.java.srcDirs
}
// 发布Task
publishing {
publications {
debug(MavenPublication) {
groupId = group
artifactId = artifactIdA
version = versionA
from components.java
artifact sourceJar
}
}
// 添加仓库地址
repositories {
// 本地仓库, 会创建 repos 文件, 位于项目根目录下
maven { url uri('../repos') }
}
}
五、配置Java编译版本(很重要,不同版本可能影响到.class文件的编译和AGP库的依赖)
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
六、配置插件入口
创建一个Class并继承Plugin,这个位置gradle-plugins是META-INF的子文件夹,AS把它收缩展示成一个文件夹了,注意一下,完成配置,它就成为了此插件的入口,可以使用groovy编写,也可以用Kotlin来写,build.gradle里面都有配置
七、将插件发布到本地
此Task运行完毕之后,看到repos文件夹下有了文件,即发布成功