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

使用IntelliJ IDEA开发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)//方式二,添加产物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】

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


http://www.mrgr.cn/news/79472.html

相关文章:

  • openharmony5.0版本源码一二级目录概览
  • 【C++游戏程序】easyX图形库还原游戏《贪吃蛇大作战》(三)
  • Scala-隐式转换
  • “切片赋值”创建列表批量操作“新”方法(Python)
  • JDK17 CompletableFuture
  • shell自动显示当前git的branch
  • [机器学习] 监督学习之线性回归与逻辑回归
  • C++ 完美转发和左值右值
  • 利用高德地图API,如何在PHP与vue3中实现地图缩放功能
  • UE5.5 Geometry库平面切割原理分析
  • Vue3+Vite+ElementPlus 构建 笔记
  • 深入理解 Spring MVC 中的 @RequestBody 注解
  • AI职位对项目经验有哪些具体要求?
  • 【力扣】647.回文子串
  • 【论文相关】期刊/会议 信息检索——IEEE各期刊投稿要求(待完善)
  • leetcode399:除法求值
  • AGCRN论文解读
  • 【调试工具】USB 转 UART 适配器(USB 转 TTL)
  • 【数字电路与逻辑设计】实验五 4人表决器
  • Javascript Clipper library, v6(介绍目录)