博主所用软件版本为:
IntelliJ IDEA 2024.1.4 (Community Edition)
Android Studio Ladybug Feature Drop | 2024.2.2 Beta 1
1、制作gradle插件(IntelliJ IDEA 2024.1.4)
新建groovy工程,File–>New–>Project…
右键点击包名,New–>Groovy Script
输入插件实现类名称
添加gradle依赖,不然无法使用gradle API
编写插件实现代码
package com.example.hello
import org.gradle.api.Plugin
import org.gradle.api.Project
class HelloPlugin implements Plugin<Project> {
@Override
void apply(Project target) {
println('good good study, day day up!')
}
}
创建插件id描述文件hello-gradle-plugin.properties
# 当前文件名为插件引用时的id
# plugins {
# id 'hello-gradle-plugin'
# }
implementation-class=com.example.hello.HelloPlugin
注意:文件名为插件引用时的id
删除用不到的文件Main.groovy文件、java目录、test目录(可选操作)
2、发布插件到本地
添加maven-publish插件并点击右上角Load Gradle Change按钮同步
plugins {
id 'maven-publish'
}
添加maven自定义发布配置信息
//当前文件中添加 plugins { id 'maven-publish' } 后下面的内容会在输入过程中自动补全
publishing {
publications {
create('HelloPlugin', MavenPublication.class, new Action<MavenPublication>() {
@Override
void execute(MavenPublication u) {
//依赖引用示例:implementation 'com.example.hello:HelloPlugin:1.0.0'
u.groupId = 'com.example.hello'
u.artifactId = 'HelloPlugin'
u.version = '1.0.0'
//方式一,添加产物
u.from(components['java'] as SoftwareComponent)
//方式二,添加产物
u.artifact("build/outputs/aar/replugin-host-lib-debug.aar")
u.artifact(androidJavadocJar)
u.artifact(androidSourcesJar)
}
})
}
//定义本地maven发布仓位置
repositories {
maven {
name 'repo'
url './repo'
}
}
}
编译gradle插件并发布到本地repo maven仓库
3、引用Gradle插件(Android Studio Ladybug)
在文件settings.gradle中定义maven仓位置
pluginManagement {
repositories {
maven {
//自定义gradle插件生成文件夹
url uri('C:\\Users\\lj0015274\\IdeaProjects\\HelloGradlePlugin\\repo')
}
}
}
文件build.gradle文件中添加插件声明
plugins {
id 'com.example.hello.HelloPlugin' apply false
}
添加插件依赖自定义解析策略
pluginManagement {
resolutionStrategy {
eachPlugin {
if (requested.id.id == 'com.example.hello.HelloPlugin') {
useModule('com.example.hello:HelloPlugin:1.0.0')
}
}
}
}
app模块中build.gradle里面添加插件引用
plugins {
//此处id为自定义插件工程中 hello-gradle-plugin.properties 的文件名
id 'hello-gradle-plugin'
}
点击右上角大象按钮(Sync Project with Gradle Files)同步gradle项目
同步结果如下图,成功打印自定义gradle插件中的日志
参考资料:
如何使用Android Studio自定义Gradle插件【https://www.jianshu.com/p/92504554d727】
后言:
如果这篇文章有帮助到你,欢迎打赏,支持我的创作。