当前位置: 首页 > news >正文

如何用IntelliJ IDEA开发Android Studio用自定义Gradle插件

博主所用软件版本为:
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.helloimport org.gradle.api.Plugin
import org.gradle.api.Projectclass HelloPlugin implements Plugin<Project> {@Overridevoid 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>() {@Overridevoid 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)}})}//定义本地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】

后言:
如果这篇文章有帮助到你,欢迎打赏,支持我的创作。
在这里插入图片描述

http://www.lryc.cn/news/498028.html

相关文章:

  • YOLOv8实战道路裂缝缺陷识别
  • RPC一分钟
  • Elasticsearch ILM 故障排除:常见问题及修复
  • Unity 设计模式-策略模式(Strategy Pattern)详解
  • 【Maven系列】深入解析 Maven 常用命令
  • 微信小程序之简单的数据中心管理平台(1)
  • sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)
  • 2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序
  • 三维扫描检测在汽车制造中的应用
  • 【NoSQL数据库】Hbase基本操作——数据库表的增删改查
  • 【C++】格式化输出详解:掌握 cout 的进阶用法
  • 设计模式学习思路二
  • 什么是等级保护
  • k8s api对象,CRD
  • 【C++指南】C++内存管理 深度解析
  • C++小碗菜之二:软件单元测试
  • PyCharm+Selenium+Pytest配置小记
  • 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/04
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Remote Communication Kit
  • 【日常记录-Mybatis】PageHelper导致语句截断
  • 随时随地掌控数据:如何使用手机APP远程访问飞牛云NAS
  • JVM 类加载器有哪些?双亲委派机制的作用是什么?如何自定义类加载器?
  • 从基态到激发态再到里德伯态的双光子激发过程
  • Clickhouse 外部存储引擎
  • eclipse怎么配置jdk路径?
  • 【前端】JavaScript 中的创建对象模式要点
  • GWAS分析先做后学
  • 【系统设计】高可用之缓存基础
  • 《Java核心技术I》volatile字段
  • 2024运维故障记 | 12/2 网易云音乐崩了