如何用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】
后言:
如果这篇文章有帮助到你,欢迎打赏,支持我的创作。

相关文章:
如何用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… 右键点…...
YOLOv8实战道路裂缝缺陷识别
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对道路裂缝数据集进行训练和优化,该数据集包含丰富的道路裂缝图像样本…...
RPC一分钟
概述 微服务治理:Springcloud、Dubbo服务通信:Grpc、Trift Dubbo 参考 Dubbo核心功能,主要提供了:远程方法调用、智能容错和负载均衡、提供服务自动注册、自动发现等高效服务治理功能。 Dubbo协议Dubbo支持dubbo、rmi、http、…...
Elasticsearch ILM 故障排除:常见问题及修复
作者:来自 Elastic Stef Nestor 大家好!我们的 Elasticsearch 团队正在不断改进我们的索引生命周期管理 (index Lifecycle Management - ILM) 功能。当我第一次加入 Elastic Support 时,我通过我们的使用 ILM 实现自动滚动教程快速上手。在帮…...
Unity 设计模式-策略模式(Strategy Pattern)详解
策略模式(Strategy Pattern)是一种行为型设计模式,定义了一系列算法,并将每种算法封装到独立的类中,使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化,客户端通过与这些策略对象进…...
【Maven系列】深入解析 Maven 常用命令
前言 在当今的软件开发过程中,项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中,Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具,主要…...
微信小程序之简单的数据中心管理平台(1)
微信小程序之简单的数据中心管理平台(1) 引言 随着微信小程序的广泛应用,越来越多的企业开始探索如何利用这一技术开发高效、便捷的管理平台。数据中心管理作为信息化建设的重要组成部分,需要一个灵活、可扩展的界面来实现资源的…...
sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)
1. MySQL 条件 数据库用户需要具备高权限(如 FILE 权限)。数据库服务运行用户需要对目标目录有写权限。Web 服务器有可写目录,且支持执行上传的脚本(如 PHP、JSP 等)。 原理 利用 MySQL 的 SELECT ... INTO OUTFIL…...
2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现: 巴黎气候协定提出的目标是:在2100年前,把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平,并为1.5摄氏度而努力。但事实上,许多之前的…...
三维扫描检测在汽车制造中的应用
三维扫描,通过先进三维扫描技术获取产品和物体的形面三维数据,建立实物的三维图档,满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…...
【NoSQL数据库】Hbase基本操作——数据库表的增删改查
目录 一、Hbase原理 二、HBase数据库操作 三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型: 行键 时间戳 列族:contents 列族:anchor 列族:mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…...
【C++】格式化输出详解:掌握 cout 的进阶用法
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯格式化输出的理论概述💯控制输出宽度和填充字符setw 操作符setfill 操作符 💯控制浮点数的显示格式fixed 与 scientificsetprecision 💯…...
设计模式学习思路二
设计模式的学习思路_设计模式必须按顺序进行吗-CSDN博客 以下是一些方法和思路可以帮助你更清晰地识别使用了哪种设计模式。 1. 确定模式时的思考步骤 以下是分析代码时,你可以遵循的一些思路和步骤,帮助你识别可能使用的设计模式: a. 识别…...
什么是等级保护
1.为什么要实施等级保护: •国家信息安全形势严峻(敌对势力),针对基础信息系统的违法犯罪持续上升(网上诈骗、入侵、网上盗窃) •维护国家安全的需求(基础信息网络【互联网、电信网、广电网】及重要信息系统【银行、铁路、电力、海关】已经成为国家的关键基础设施) •信息安全是…...
k8s api对象,CRD
在Kubernetes项目中,一个API对象在Etcd里的完整资源路径,是由:Group(API组)、Version(API版本)和Resource(API资源类型)三个部分组成 apiVersion: batch/v2alpha1 kind:…...
【C++指南】C++内存管理 深度解析
💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言 一、C 内存管理概述 二、C内存区域划分 三、C 内存管理方式 🍃1.自动内存管理…...
C++小碗菜之二:软件单元测试
“没有测试的代码重构不能称之为重构,它仅仅是垃圾代码的到处移动” ——Corey Haines 目录 前言 什么是单元测试? 单元测试的组成 单元测试的命名 单元测试的独立性 Google Test 单元测试的环境配置与使用 1. Ubuntu下安装 Google Test 2. 编写…...
PyCharm+Selenium+Pytest配置小记
1、下载ChromeDriver: Chrome130以后的Driver下载: Chrome for Testing availabilityhttps://googlechromelabs.github.io/chrome-for-testing/ (1)查看自己Crome浏览器的版本:设置-->关于 Chrome; &…...
摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/04
Learning Roadmap: Section 1: Intro to Parallel Programming & MUSA Deep Learning Ecosystem(摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/30-CSDN博客)UbuntuDriverToolkitcondapytorchtorch_musa环境安装(2024/11/24-Ubunt…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Remote Communication Kit
1.问题描述: DynamicDnsRule有没有示例?这个地址是怎么解析出来 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/remote-communication-rcp-0000001770911890#section8160554134811 解决方案: ‘DynamicDnsRule’&a…...
不只是YOLOv5!详解Windows‘页面文件太小’错误的通用解决思路与内存优化技巧
不只是YOLOv5!详解Windows‘页面文件太小’错误的通用解决思路与内存优化技巧 当你在深夜赶工一个重要的机器学习项目,或是渲染一段4K视频时,突然弹出一个冰冷的错误提示:"页面文件太小,无法完成操作"。这一…...
【从零学Vibe Coding】第一章:Vibe Coding 到底是什么?
第一章:Vibe Coding 到底是什么? 先说结论 Vibe Coding 不是"不写代码",而是"先用自然语言描述意图,再让 AI 生成代码,人类负责判断、修正和推进结果"。 这个词在 2025 年突然出圈,不…...
从迷宫到N皇后:用Python手把手带你吃透BFS和DFS(附Educoder通关代码)
从迷宫到N皇后:用Python手把手带你吃透BFS和DFS(附Educoder通关代码) 在算法学习的道路上,BFS(广度优先搜索)和DFS(深度优先搜索)就像是一对性格迥异的双胞胎。一个喜欢稳扎稳打层层…...
数据架构演进:从数据仓库到湖仓一体与流批融合实战
1. 从“数据仓库”到“数据湖”:一场思维范式的革命干了十几年数据,从最早的Oracle报表,到后来的Hadoop集群,再到现在的云原生数据平台,我亲眼见证了数据架构这十几年的风云变幻。如果说大数据时代的开启是一声惊雷&am…...
多版面文章活动公众号管理系统
文章营销活动系统概述基于微擎系统开发的在线交付文章营销推广类源码应用,支持多活动管理、多站点搭建及多版面切换。核心功能包括转发奖励积分或余额,适配文章推广、流量裂变及营销获客需求。核心功能多活动管理 后台可创建并管理多个营销活动ÿ…...
嵌入式AI四大趋势:硬件定义模型、工具链平民化、多模态融合与系统级安全
1. 项目概述:嵌入式AI的十字路口与新机遇最近和几位在芯片原厂、终端设备公司做研发的朋友聊天,大家不约而同地都在讨论同一个话题:嵌入式AI的玩法,好像和几年前不太一样了。过去我们一提到“嵌入式AI”,脑子里蹦出来的…...
OpenAI Codex 安装部署指南:从零到跑通,2026最新版
⏱️ 阅读时间:8分钟 | 📌 难度:入门级 | 🔧 适用系统:macOS / Linux / Windows(WSL2) 前言 距离上次写 Codex 测评已经有一段时间了,这期间 Codex 又经历了好几轮大更新:Computer Use 能力、内…...
书评质量断崖式提升的关键一步,Perplexity辅助写作的3层认知跃迁与2个致命误用陷阱
更多请点击: https://kaifayun.com 第一章:书评质量断崖式提升的关键一步,Perplexity辅助写作的3层认知跃迁与2个致命误用陷阱 Perplexity 不是搜索引擎的替代品,而是面向深度思考的“认知协作者”。当用于技术书评写作时&#x…...
如何轻松配置Windows和Office:面向新手的终极解决方案指南
如何轻松配置Windows和Office:面向新手的终极解决方案指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出配置提示而烦恼吗?Office突然变成只…...
Flyback电源里,为什么TVS管和二极管要‘组队’才能搞定电压尖峰?
Flyback电源中TVS管与二极管的协同钳位机制解析 在反激式(Flyback)电源设计中,初级侧的电压尖峰抑制一直是工程师面临的棘手问题。许多初学者会疑惑:为什么不能像继电器线圈保护那样,仅用单个二极管实现钳位?这个看似简单的疑问背…...
