【idea插件开发】从0入门idea插件开发,idea插件开发教程,如何开发idea插件

article/2025/9/23 7:45:55

idea插件介绍

作为一枚程序员,平时最常用的ide就是IntelliJ IDEA。平时会用到各种各样的插件,通过插件的使用,提高自己的开发效率。

idea具有全局性,安装好插件后,对idea生效,所有的工程均能找到。

idea使用的便捷性,在固定的菜单中,或者右键即可看到该插件的使用入口

专注度高,展示出来的内容均是自己需要关注的,不需要关注的就不会展示。可以专注思考自己要怎么用。

和系统解耦,插件可以给给开发提效,却不会去占用项目的空间位置。

为什么开发idea插件?

目前已有插件并不能真的完全满足自己的需求。举个简单的栗子,比如,最近在用mybatis plus的generator,配置完成之后,运行main方法,就可以生成ORM代码。新建一个工程,就需要把代码给拷贝过去,然后再重新配置一下,再生成。

缺点:

  1. 过于繁琐,每次都需要去把代码给拷贝过去,然后运行。
  2. 冗余,这个代码对于实际的业务来说,没有任何意义。
  3. 不便捷,代码只能生成在固定地方,否则就得自己去更改配置。然后自己再重复性的去复制过去。
  4. 不便捷,代码放在固定地方,在比较大的工程结构中,自己需要去找。如果新加入的开发不熟悉,并不知道这个在哪,低效。

基于以上思考,就需要开发插件来和系统解耦,达到提效的效果。

开发插件的场景需要准备些什么

  • 首先你需要有一定的开发经验,新手的话,还是需要先学习语言基础,idea的使用等。
  • 有需求场景,知道自己接下来要开发的是一个什么东西,围绕着需求不断地去完善插件
  • 大致看下idea plugin sdk的开发手册,对它能干什么有一个大致的了解。
  • 如果要使用gradle开发,需要对gradle有一定的使用能力。

开发插件流程(最简单的使用场景)

新建项目(使用的最新的idea,创建流程稍有不一样)

在这里插入图片描述

配置gradle

最新版的插件开发使用的是kts的gradle插件。基本用法是一样的,不同的是写法有稍微一点不一样。

一些常用的配置

依赖

//顶层结构
dependencies {implementation("org.springframework.boot:spring-boot-starter:2.7.0")
}// 一般的gradle是 
compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: '2.7.0'

将依赖打进jar包中(不打进去,插件如果有用到依赖,就会无法使用,找不到类)

// 顶层结构
tasks.jar.configure {duplicatesStrategy = org.gradle.api.file.DuplicatesStrategy.INCLUDEfrom(configurations.runtimeClasspath.get().filter { it.name.endsWith("jar")}.map { zipTree(it) })
}

将仓库改为阿里云仓库

// 顶层结构
repositories {mavenLocal()maven("https://maven.aliyun.com/nexus/content/repositories/central/")mavenCentral()
}

创建第一个action

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;public class MyAction extends AnAction {@Overridepublic void actionPerformed(@NotNull AnActionEvent e) {Project project = e.getProject();Messages.showMessageDialog(project, "this is message content", "this message title", Messages.getInformationIcon());}
}

将action配置到plugin中

src -> main -> resource -> META-INF -> plugin.xml<idea-plugin><!-- 插件的id,该id是唯一的,插件的坐标是一维的,只有一个id。这点和maven的不太一样,maven的是二维坐标 --><id>com.geek45.plugin-demo</id><!-- 插件名字--><name>plugin demo</name><!-- 插件的描述,有固定格式,这里可以写html代码 --><description><![CDATA[<h1> Demo plugin </h1>测试插件 <br>点击插件可以弹出一个弹窗<p>plugin demo <br /><b><a href="https://www.geek45.com">Website</a> |<a href="https://github.com/xiaopangzhi795/plugin-demo">GitHub</a> |</b></p>]]></description><!-- 这里是插件依赖管理,和gradle的依赖不一回事,可以依赖其他的插件 --><depends>com.intellij.modules.platform</depends><!-- 拓展管理,后续的ui页面会在这里配置,暂时用不到 --><extensions defaultExtensionNs="com.intellij"></extensions><!-- action配置,按钮展示在哪里需要在这配置 --><actions><action class="com.geek45.action.MyAction" id="myAction" text="action" description="this is action demo" ><!-- 将插件放在Tools菜单中的first位置。 --><add-to-group group-id="ToolsMenu" anchor="first" /></action></actions></idea-plugin>

打包

在这里插入图片描述

gradle中,运行jar命令,就可以把插件打成jar包,在项目根目录中,有build目录,libs中会有打好的jar包。

image-20220626145747756

plugin中,选择本地安装,然后选择刚才打好的jar包,就可以把插件安装到自己的idea中。

本地运行

打包安装太麻烦了,可以选择本地运行的方式进行调试。

在这里插入图片描述

选择runIde,就可以本地运行。该命令支持debug运行,debug可以打断点。

运行该命令,会启动一个新的idea,该idea中已经安装了你开发的插件。在该idea中可以直接使用插件,使用过程中,可以在项目里面断点跟进。

新的idea和正常idea操作是一样的,可以打开一个测试code,来测试你的插件是否正常运行。

运行效果

在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/ugGbcMWQ.shtml

相关文章

常用的IDEA插件

IDEA是程序员用的最多的开发工具&#xff0c;很多程序员想把它打造成一站式开发工具&#xff0c;于是安装了各种各样的插件。通过插件在IDEA中完成各种操作&#xff0c;无需安装其他软件&#xff0c;确实很方便&#xff01;今天给大家分享下我平时常用的IDEA插件&#xff0c;个…

IDEA最全实用插件与使用(VIP典藏版)

&#x1f308;idea总结100篇&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 目录 一、搜索插件 二、快捷开发系列 &#x1f33e;CodeGlance&#xff1a;代码缩略图 &#x1f921;GenerateAllSetter&#xff1a;快速生成对象所有set方法 &#x1f308;came…

IDEA常用插件Top18

前言&#xff1a;精心推荐给大家的一些日常开发中最常用的IDEA效率插件。 1、Alibaba Java Coding Guidelines代码规范检查工具 Alibaba Java Coding Guidelines ,阿里的一款强大的代码规范检查工具&#xff0c;可以让自己写出易读性更高的代码&#xff0c;可以让团队代码风格…

IDEA常用插件介绍

前言&#xff1a;插件名为笔者自用的IDEA2019.3.5所能搜索到的&#xff0c;若新版IDEA未能搜索到&#xff0c;可用括号内的插件名替代。 一、Lombok&#xff08;新版IDEA自带&#xff09; Lombok能通过注解的方式&#xff0c;在编译时自动为属性生成构造器、getter/setter、e…

超实用的IDEA插件推荐,百万级下载量

超实用的30多款idea插件&#xff0c;有百万级下载量的优秀插件&#xff0c;你值得拥有&#xff01; 好的工具助你事半功倍&#xff0c;快速协助敲出更漂亮更有效率的代码。搬运工这里收集了很不错的IDEA插件&#xff0c;相信你一定会喜欢的。 〓必备插件列表&#xff1a; Gre…

【Java】分享一下26个常用的IDEA插件

文章目录 1. Chinese Language2. Atom Material Icon3. Rainbow Brackets4. Translation5. Codota6. GenerateAllSetter7. GsonFormatPlus8. Alibaba Java Coding Guidelines9. Free Mybatis Tool10. maven-search11. Maven Helper12. CodeGlance Pro13. MyBatisCodeHelperPro1…

墙裂推荐,2023年最强、最实用的IDEA插件推荐合集

插件目录 Alibaba Java Coding Guidelines(阿里巴巴java开发规范)Alibaba Cloud AI Coding Assistant(阿里云AI代码助理)Code Glance3(代码地图)Codota AI Autocomplete for Java and JavaScriptCSDN Tools(CSDN官方插件)FindBugsGenerateAllSetter Postfix Completion (自动生…

装了这 10 个 IDEA 神级插件,基本上一站式开发了!

大家好&#xff0c;我是二哥呀。 昨天&#xff0c;有球友私信发我一篇文章&#xff0c;说里面提到的 Intellij IDEA 插件真心不错&#xff0c;基本上可以一站式开发了&#xff0c;希望能分享给更多的小伙伴&#xff0c;我在本地装了体验了一下&#xff0c;觉得确实值得推荐&…

IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件

目录 一、插件安装方式 二、常用插件 1、Background Image Plus 2、Mybatis Log Plugin 3、MybatisCodeHelperPro 4、Grep Console 5、CodeGlance 6、GenerateAllSetter 7、RestfulToolkit 8、Maven Helper 9、JRebel 10、 Json Parser 11、Translation 12、aiXcode & co…

IDEA必备30款好用插件合集

01、Chinese Language 汉化必备 02、One Dark theme 代码主题 03、Atom Material Icon 图标主题 04、Rainbow Brackets 多彩花开括号 05、Translation 翻译 快捷键&#xff1a;CtrlShiftY 06、Codata 代码提示 07、Tabnine AI Code Competion 代码提示 08、any-rule 正则表达式…

IDEA工具插件(持续更新中...)

快捷跳转 1.如何下载2.IDEA配置1.版本控制修改文件对应的目录跟着报色2.取消匹配大小写3. 创建文件显示&#xff0c;作者&#xff0c;日期&#xff0c;描述&#xff0c;包名等信息4.双斜杆注释紧跟代码前面5.自动导入包6.取消tab页单行显示 3.插件1.CamelCase2. Alibaba Cloud …

坦白说,我也想躺平

最近&#xff0c;关于躺平的讨论特别火。 嗯&#xff0c;我是一向鼓励年轻人努力的&#xff0c;但扪心自问&#xff0c;我自己其实是已经半躺平的。 我跟很多读者的父母年龄相差不大&#xff0c;身为70后&#xff0c;人过中年&#xff0c;早没什么雄心壮志&#xff0c;所追求的…

暴力破解pdf文档密码

目录 前言 准备系统环境 安装pdfcrack 使用指定字符开始暴力破解 使用字典文件进行爆破 附pdfcrack man手册 前言 相信小伙伴们都遇到这种情况;你收到了一些标题很吸引人的pdf文档 或者是重要数据泄露 学习资料总结&#xff0c;再或者是某机构的押题密卷&#xff0c;打开…

QQ坦白说查看好友方法攻略

需要工具&#xff1a;安卓手机&#xff0c; Packet Capture&#xff08;请自行百度后下载&#xff09; 首先哈&#xff0c;安装 Packet Capture APP&#xff0c;具体就不演示了哈 进入软件 这样就进入到主界面,左上角两个绿色按钮分别是抓取单一APP网络请求与抓取全部请求 抓取…

【坦白说】如何确定对方身份?

【坦白说】如何确定对方是谁&#xff1f;通过很简单的方法利用QQ中的规则“漏洞”就可以达到目的&#xff0c;不过前提是有人通过坦白说给你发消息。。。 方法 因为发送消息的人彼此之间都是熟人&#xff0c;可以通过诱导对方点击自己发送的链接来查看对方的身份。这里链接分为…

最新QQ坦白说消息查看发送者

每次收到坦白说消息我们都很好奇是谁发的,今天教大家如何找到发消息的人!!! 第一步:打开手机QQ右划找到QQ钱包 第二步:找到QQ红包,点进去发一个面对面红包(金额可小,土豪随意!),编辑完之后获得一个二维码截图保存(很重要哦!!!!). 第三步:打开浏览器输入网址https://cli.im/d…

[已失效]坦白说(查看好友)抓包教程+解密工具

注意&#xff1a;本文章的重要操作部分已标红显示&#xff0c;其他内容可以不看。最近QQ的坦白说很火&#xff0c;许多人都好奇坦白说是谁发的。结果没过多久大家还真就发现了bug。(1)iOS设备可以直接在搜索框中搜索坦白说的内容&#xff0c;随后就会显示发送者和你有一段聊天记…

QQ坦白说如何查对方身份??其实很简单~

有了坦白说才知道&#xff0c;原来了我在好友眼里是这样的人 &#xff01; ▼ 大数据化的时代&#xff0c;坦白说满足了大家的偷窥欲。看看别人给自己贴的什么标签&#xff0c;再给别人贴标签&#xff0c;虽然听上去像是幼稚的行为&#xff0c;却乐此不疲 ▼ 有时候收到夸自己的…

如何知道坦白说里面是谁给了自己评价?

这个方法只适用于安卓手机。 1.安装无Root抓包:Packet Capture 无Root抓包:Packet Capture 安装之后打开应用-->点击Get Started -> Continue -> Install Certificate(如下图) 最后点击确认&#xff0c;完成抓包工具的安装。 2.打开坦白说界面 记住&#xff0c;不要点…

怎样查看谁发的qq坦白说

0x01: 打开手机qq 上边搜索框输入坦白说 然后先别动 0x02: 接着打开抓包软件 我用的是Charles 设置代理&#xff08;我用的是wifi 主机名是我的电脑ip地址 端口号8888&#xff09; 设置好后点击确定 注意&#xff1a;如果用的不是Charles或其他抓包软件的默认配置…