idea插件开发系列1-环境搭建

devtools/2024/9/24 4:56:52/

前言

还记着10多年前有幸接触了eclipse插件开发,10多年后的今天有开发了idea的插件,真是一个轮回!

为什么要学习idea插件开发呢? 目前公司使用自己的MVC框架,没有相应的idea插件支持(如类似mybatis插件可以完成xml和调用dao的方法来回跳转的功能),所以工作之余,想开发一个插件,适配公司的MVC框架,提高点开发效率。

环境

idea: IntelliJ IDEA 2024.2.2 (Community Edition)

jdk:17

Plugin Devkit 242.22855.74

搭建过程

1 下载idea

https://www.jetbrains.com/zh-cn/idea/download/?section=windows  往下滑

安装即可。开源免费的。

2 安装idea 插件

目前版本的idea想完成插件开发,需要安装相应的开发插件。Plugin Devkit 。

3 新建工程

注意:需要选择jdk 17及以上。如果没有,直接使用idea安装一个17即可。

4 主要的配置文件

(1)build.gradle.kts

gradle的配置文件,类似于maven的pom文件。kts尾缀,表明有kotlin语言。

注意:

这个文件中的plugins和idea的插件没有关系,是gradle中的插件体系。红框中的org.jetbrains.intellij是idea为gradle写的扩展程序。官方文档 Gradle IntelliJ Plugin (1.x) | IntelliJ Platform Plugin SDK 。

可以看到,idea有两个版本的gradle扩展插件,目前项目用的是1.x版本。

(2)plugin.xml

idea的插件配置文件,如插件的信息,插件的依赖关系,扩展点等等配置。具体配置可在网上搜索一下。

5 主要的坑(或者说找了好久才知道的配置)

1) 添加java的支持。默认创建的插件项目,没有依赖idea中的java插件(就是不能调用java的相关功能,例如,不能找到PsiJavaFile这个类)。

需要首先在build.gradle.kts配置

然后再在plugin.xml配置

然后再刷新gradle配置即可。

2)找不到PackageChooserDialog这个类。这个类是一个对话框,可以选择java的包路径。

需要在plugin.xml配置中添加配置

3)如何在插件中使用第三方的jar包。如freemarker。

在build.gradle.kts配置

参考文档

官方文档  IntelliJ Platform SDK | IntelliJ Platform Plugin SDK


http://www.ppmy.cn/devtools/116336.html

相关文章

xml中的转义字符

文章目录 xml中的转义字符 xml中的转义字符 &amp;对应的字符是& <对应的字符是< >对应的字符是> &quot;对应的字符是" &apos;对应的字符是转义的实体引用虽然简单易用&#xff0c;但是需要记忆&#xff0c;而且如果字符串中包含大量的特殊字…

分发饼干00

题目链接 分发饼干 题目描述 注意点 1 < g[i], s[j] < 2^31 - 1目标是满足尽可能多的孩子&#xff0c;并输出这个最大数值 解答思路 可以先将饼干和孩子的胃口都按升序进行排序&#xff0c;随后根据双指针 贪心&#xff0c;将当前满足孩子胃口的最小饼干分配给该孩…

HarmonyOS鸿蒙开发实战(5.0)悬浮窗拖拽和吸附动画实践

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

pikachu XXE(XML外部实体注入)通关

靶场&#xff1a;pikachu 环境: 系统&#xff1a;Windows10 服务器&#xff1a;PHPstudy2018 靶场&#xff1a;pikachu 关卡提示说&#xff1a;这是一个接收xml数据的api 常用的Payload 回显 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY …

【LeetCode:1014. 最佳观光组合 + 思维题】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【AI视频】复刻抖音爆款AI数字人作品初体验

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AI视频 | AI数字人 文章目录 &#x1f4af;前言&#x1f4af;抖音上的爆火AI数字人视频&#x1f4af;注册HeyGen账号&#x1f4af;复刻抖音爆款AI数字人&#x1f4af;最终生成效果&#x1f4af;小结 对比原视频效果&#xff1a;…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…

2023年06月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 + 解析

青少年软件编程(Python)等级考试试卷(二级) 一、单选题(共25题,共50分) 1. 运行以下程序,如果通过键盘先后输入的数是1和3,输出的结果是?( ) a=int(input()) b=int(input()) if a < b: a=b print(a) A. 3 1 B. 1 3 C. 1 D. 3 正确答案:D 答案解析&am…