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

news2024/9/24 6:09:13

前言

还记着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.coloradmin.cn/o/2159606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于51单片机智能家居监控系统设计

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…

计算机毕业设计hadoop+hive航班预测系统 飞机票航班数据分析可视化大屏 机票预测 机票爬虫 飞机票推荐系统 大数据毕业设计

《HadoopHive航班预测系统》开题报告 一、课题背景与意义 随着全球航空业的快速发展,航班数据呈现出爆炸性增长的趋势。这些数据包含了航班时间、航线、价格、乘客量、天气条件等多种信息,对于航空公司来说,如何高效处理和分析这些数据&…

大模型培训讲师叶梓:Llama Factory 微调模型实战分享提纲

LLaMA-Factory ——一个高效、易用的大模型训练与微调平台。它支持多种预训练模型,并且提供了丰富的训练算法,包括增量预训练、多模态指令监督微调、奖励模型训练等。 LLaMA-Factory的优势在于其简单易用的界面和强大的功能。用户可以在不编写任何代码的…

高校大数据实训管理平台怎么选择?

泰迪智能科技大数据实训管理平台分为多个方向包括:人工智能方向、大数据方向、商务数据分析方向,不同高校可以结合高校情况选择合适自己院校的相关产品平台。 高校实训管理平台是实验室模块的核心母平台,对实验室的所有课程及实训资源进行统…

【题解】CF2013A

首先抽自己一巴掌,A题自信提交直接WA,故写此题解警示一下(顺便水一水)。 翻译 原题链接 思路 显然,若搅拌机单位时间能处理的水果数 x x x小于人每次丢进去的数量 y y y,那人只需要一直扔进去就好了&…

【d48】【Java】【力扣】LCR 123. 图书整理 I

思路 方法1:放进list,将list倒置,利用stream,将list改为int类型 方法2:递归:递归通用思路;明确每一层做什么确定返回值确定什么地方接收下层的返回值 每一层:调用下层,然后把自己…

护理陪护小程序|陪护系统||陪护系统开发

在当今社会,随着人口老龄化的加剧和家庭结构的变化,护理与陪护服务的需求日益增长。为了更好地满足这一市场需求,并提升服务效率与质量,护理陪护小程序应运而生。这类小程序不仅为用户提供了便捷、高效的服务预约与管理平台&#…

DANN GRL

域自适应是指在目标域与源域的数据分布不同但任务相同下的迁移学习,从而将模型在源域上的良好性能迁移到目标域上,极大地缓解目标域标签缺失严重导致模型性能受损的问题。 介绍一篇经典工作 DANN : 模型结构 在训练阶段需要预测如下两个任务…

Redis:持久化

1. Redis持久化机制 Redis 支持 RDB 和 AOF 两种持久化机制,持久化功能有效地避免因进程退出造成数据丢失问题, 当下次重启时利⽤之前持久化的文件即可实现数据恢复。 2.RDB RDB 持久化是把当前进程数据⽣成快照保存到硬盘的过程,触发 RDB…

【第十一章:Sentosa_DSML社区版-机器学习之分类】

目录 11.1 逻辑回归分类 11.2 决策树分类 11.3 梯度提升决策树分类 11.4 XGBoost分类 11.5 随机森林分类 11.6 朴素贝叶斯分类 11.7 支持向量机分类 11.8 多层感知机分类 11.9 LightGBM分类 11.10 因子分解机分类 11.11 AdaBoost分类 11.12 KNN分类 【第十一章&…

Rustrover2024.2 正式发布:个人非商用免费,泰裤辣

如果这个世界本身 已经足够荒唐 那究竟什么才能算是疯狂 爱情就是这样 一旦错过了 就会有另一个人代替 我们知道 jetbrains 在今年的早些时候正式为 rust 语言发布了专用的 IDE ,也就是 rustrover。如今 rustrover 也正式跻身为 jetbrains IDE 系列的一员猛将。…

Dynamic Connected Networks for Chinese Spelling Check(ACL2021)

Dynamic Connected Networks for Chinese Spelling Check(ACL2021) 一.概述 文中认为基于bert的非自回归语言模型依赖于输出独立性假设。不适当的独立性假设阻碍了基于bert的模型学习目标token之间的依赖关系,从而导致了不连贯的问题。为些&#xff0c…

如何使用GLib的单向链表GSList

单向链表是一种基础的数据结构,也是一种简单而灵活的数据结构,本文讨论单向链表的基本概念及实现方法,并着重介绍使用GLib的GList实现单向链表的方法及步骤,本文给出了多个实际范例源代码,旨在帮助学习基于GLib编程的读…

docker如何升级MySQL为最新版本

今天安全扫描发现MySQL存在漏洞,不用想别的升级到最新版。本篇文章有两个目的,1)为自己做一个记录,下次升级的时候不用再浪费时间查资料;2)给大家一点帮助; 因为我是docker部署,所以…

docker 创建showdoc服务 showdoc容器部署教程

1. 下载最新版本镜像 # 按照最新版本 docker pull star7th/showdoc 2. 创建映射文件夹: # 创建文件夹 mkdir -p /data/showdoc_data# 可写权限 chmod 777 /data/showdoc_data 3.创建容器命令: docker run -d --name showdoc --userroot --privileged…

分享一个vue+spring的前后端项目

管理员页面 用户界面 后面的一部分 后端代码

leetcode第二十六题:删去有序数组的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你…

力扣题解1014

大家好,欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述(中等): 最佳观光组合 给你一个正整数数组 values,其中 values[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的 距离…

C++ | Leetcode C++题解之第432题全O(1)的数据结构

题目&#xff1a; 题解&#xff1a; class AllOne {list<pair<unordered_set<string>, int>> lst;unordered_map<string, list<pair<unordered_set<string>, int>>::iterator> nodes;public:AllOne() {}void inc(string key) {if (…

R语言 基础笔记 2

起因&#xff0c; 目的: 偶然看到一个新的教程&#xff0c; 有些知识点&#xff0c;以前没见过&#xff0c;不熟悉&#xff0c; 现在遇到了&#xff0c;记录一下。 基础数据类型 2L&#xff0c; 表示整数 3 ^ 2, 表示求幂 class(a) 查看 类 typeof(a) 查看基本数据类型 s…