💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 前言 问:为什么要开发idea插件呢? 答:你一定用过很多idea插件,比如`ideaVim`,`Maven`,`lombok`,`markdown`等。 | ![](https://img.kancloud.cn/77/23/7723aae322e81293bdca82a9d821e1e0_350x110.png) | ![](https://img.kancloud.cn/a5/1f/a51f213e6048545a5d54af83157da73f_286x112.png) | | --- | --- | | ![](https://img.kancloud.cn/54/3c/543c6f25d4191c72a6ca2895f8287d01_242x116.png) | ![](https://img.kancloud.cn/fb/fa/fbfac94d785720dda12c9e8d48c225af_346x120.png) | 这些都是插件,安装后你的idea就能获得对应的能力。 现在想象你是一个插件开发者,通过开发插件来增强idea的能力,并发布到idea的插件仓库,分享给其他人。这样是不是很有意思呢! ## 环境信息 操作系统: macOs catalina 10.15.7 idea版本:2021.3.1 社区版 jdk版本:jdk-11.0.14.jdk ![](https://img.kancloud.cn/6f/da/6fdacedba7d5addacc295568eed29889_986x538.png) ## 开发第一个插件 ### 新建plugin项目 选择左侧`IntelliJ Platform Plugin`,并设置SDK,点击下一步; ![](https://img.kancloud.cn/50/09/5009ec9d8ddf2977b82fd2ee196e16c7_2140x1284.png) 填写项目名称,并设置项目所在路径,点finish。 ![](https://img.kancloud.cn/31/14/311424026074166edbc8b3131926069f_2140x1284.png) ### 插件工程简介 ![](https://img.kancloud.cn/9a/6a/9a6a6b6df73e5af79159720f12fe4a3f_1350x552.png) * 依赖IntelliJ IDEA SDK * 在`resources/META-INF`下的`plugin.xml`是插件的配置文件,很重要,也是插件运行入口 ### plugin.xml介绍及内容 ~~~ <idea-plugin> <!-- 插件ID,全世界唯一 --> <id>com.mango.idea.hello.ide.id</id> <!-- 插件名称,会显示在插件详情页 --> <name>mango hello ide</name> <!-- 插件版本 --> <version>1.0</version> <!-- 插件联系人,网址 --> <vendor email="1092017732@qq.com" url="http://mg.meiflower.top">mango mei</vendor> <!-- 插件描述,会显示在插件详情页 --> <description><![CDATA[ mango mei first ide plugin.<br> hello world,you can study it ]]></description> <!-- 插件更新日志,会显示在插件详情页 --> <change-notes><![CDATA[ 1.0 version<br> ]]> </change-notes> <!-- idea版本检查,至少173.0以上 --> <idea-version since-build="173.0"/> <!-- 请查看 https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html 插件依赖能力 --> <depends>com.intellij.modules.platform</depends> <extensions defaultExtensionNs="com.intellij"> <!-- 在这里添加你的扩展 --> </extensions> <actions> <!-- 在这里添加你的action --> </actions> </idea-plugin> ~~~ ### 创建action 添加Hello动作到邮件菜单 ![](https://img.kancloud.cn/df/bf/dfbf16cdbb2e70b523bea70692948c2d_1854x1210.png) 点击完成会自动生成如下配置到`plugin.xml`: ~~~ <actions> <!-- 在这里添加你的action --> <action id="mangoHello" class="com.mango.idea.hello.HelloAction" text="Hello" description="Hello IDE"> <add-to-group group-id="EditorPopupMenu" anchor="first"/> <keyboard-shortcut keymap="$default" first-keystroke="ctrl meta J"/> </action> </actions> ~~~ ### HelloAction逻辑 点击弹出提示`Hello IDE` ~~~ public class HelloAction extends AnAction { @Override public void actionPerformed(AnActionEvent e) { Notifications.Bus.notifyAndHide(new Notification(new String("MangoTip"),"Hello Title","Hello IDE", NotificationType.INFORMATION)); } } ~~~ ### 运行调试 ![](https://img.kancloud.cn/ea/8b/ea8b9bc61aaa2187e1b943b6cc752e00_540x118.png) ![](https://img.kancloud.cn/ba/99/ba9949661b8485c5190b9a0e79ffbcee_1116x1120.png) ![](https://img.kancloud.cn/9d/1f/9d1ff4b8db04a32401a718eadfc5883b_792x254.png) ## 打包插件 点击下图编译打包动作 ![](https://img.kancloud.cn/bb/88/bb88991b684d9268bf3a6677429060de_1938x862.png) 就会生成如下jar包 ![](https://img.kancloud.cn/f6/95/f6954f6ca4b4574affa4836ae1579212_1052x950.png) ## 发布插件 * 1.发布到idea在线仓库,需要先注册 https://plugins.jetbrains.com/ * 2.然后通过如下入口上传插件,审核通过后才能在插件市场内搜索到 ![](https://img.kancloud.cn/2b/cb/2bcbf6351677a7fb2ac7965614f78ea1_1466x490.png) ![](https://img.kancloud.cn/03/8b/038bf81169a81c735dc3e3770d2e23f4_1566x1460.png) 或者另外一种方式,直接把打包好的jar包copy给朋友,拖拽到idea内就能安装了。