idea插件开发之hello idea plugin

news2024/11/18 9:39:50

写在前面

最近一直想研究下自定义idea插件的内容,这样如果是想要什么插件,但又一时找不到合适的,就可以自己来搞啦!这不终于有时间来研究下,但过程可谓是一波三折,再一次切身体验了下万事开头难。那么,为了能让有这方面需求的小伙伴,少走弯路,直通罗马,就考虑写一篇入门的文章,我们共同学习,共同进步!!!

1:环境准备

这里列举下我本地的开发环境,这样当你遇到问题时,可以从这方面来找下原因:

idea:
	2019-IntelliJ IDEA 2019.3.1 (Ultimate Edition),开始使用2021.1版本各种问题
gradle:
	5.2.1 另外注意给gradle配置jdk11,后面会讲到,开始我配置了8,不行,9也不行/(ㄒoㄒ)/~~
win10
jdk8:
	项目开发的话,就是用了jdk8

1.1:配置gradle

在这里 下载5.2.1版本,解压到一个目录:
在这里插入图片描述
然后在init.d目录创建init.gradle,并写如下内容:

allprojects {
    repositories {
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
        mavenCentral()
    }
 
    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

然后配置环境变量:
在这里插入图片描述
配置idea:
在这里插入图片描述
注意4,一定要选择11,一定要选择11,一定要选择11。

2:hello idea plugin

这里我们实现这样的效果,在File下增加一个按钮,点击弹出个框,像这样:
在这里插入图片描述
首先创建项目:
在这里插入图片描述
在这里插入图片描述
录入项目信息就和普通项目一样了。接着finish,等待加载完毕,需要再来修改gradle的配置:
在这里插入图片描述
然后还需要修改build.gradle中的org.jetbrains.intellij版本为0.6.3:
在这里插入图片描述
接着reimport:
在这里插入图片描述
成功后:
在这里插入图片描述
jdea插件,按钮和定义以及响应的事件是通过action来实现的,所以我们需要来定义一个action:
在这里插入图片描述
接着录入相关内容:
在这里插入图片描述
此时会在plugin.xml中生成Action以及按钮相关的信息:
在这里插入图片描述
并生成action java类:
在这里插入图片描述
我们添加一行代码,弹出hello idea plugin:
在这里插入图片描述
接着点击,左上角的执行:
在这里插入图片描述
成功后,会打开一个新的idea,因为是测试插件使用的,所以是全新初始设置的idea,不会影响现有的:
在这里插入图片描述
接着就按照正常使用idea的操作来使用,就行了:
在这里插入图片描述
点击:
在这里插入图片描述

3:打包并加载插件到idea中使用

打jar包:
在这里插入图片描述
生成的jar包:
在这里插入图片描述
然后就可以通过磁盘安装的方式,安装插件到你的idea中了:
在这里插入图片描述在这里插入图片描述
再重启下idea就可以了:
在这里插入图片描述
在这里插入图片描述
因为还没有发布到市场,所以此时还不能通过市场搜索的方式来找到我们的插件。

4:通过模板方式创建插件项目

前面分析的是通过gradle的方式来创建插件项目,当然这也是idea官方推荐的方式,因为管理依赖和管理项目更加方便(和我们开发普通的项目用maven一个道理),完整起见,再来看下通过模板方式如何创建项目,差别主要在创建项目和导出项目,首先看创建项目:
在这里插入图片描述
比如我们开发了一个Action,用来弹出类信息工程信息:
在这里插入图片描述
之后,发布项目是:
在这里插入图片描述
运行和gradle方式类似,如下:
在这里插入图片描述
在这里插入图片描述

写在后面

参考文章列表

开源镜像站 。

IDEA如何配置 Gradle(详细版) 。

IDEA 插件开发入门 。

Intelij开发idea插件从开发到发布的完整详细教程附带源码demo 。

IDEA插件开发 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1812009.html

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

相关文章

opencv_GUI

图像入门 import numpy as np import cv2 as cv # 用灰度模式加载图像 img cv.imread(C:/Users/HP/Downloads/basketball.png, 0)# 即使图像路径错误,它也不会抛出任何错误,但是打印 img会给你Nonecv.imshow(image, img) cv.waitKey(5000) # 一个键盘绑…

快递一键查询,只需快递单号,轻松掌握全程物流信息,让您的包裹追踪无忧!

在快节奏的现代生活中,快递已经成为我们生活中不可或缺的一部分。无论是网购的宝贝、亲朋好友寄来的礼物,还是工作中的紧急文件,快递都承载着我们的期待和需要。然而,面对众多的快递公司和复杂的查询流程,如何快速、准…

新火种AI|摊上事儿了!13名OpenAI与谷歌员工联合发声:AI失控可能导致人类灭绝...

作者:小岩 编辑:彩云 2024年,OpenAI的CEO Sam Altman就没有清闲过,他似乎一直走在解决麻烦的路上。最近,他的麻烦又来了。 当地时间6月4日,13位来自OpenAI和Google Deep Mind的现任及前任员工联合发布了…

UFS Explorer Professional Recovery: 如何从启用了 mSATA 缓存的 Drobo 设备中恢复数据

天津鸿萌科贸发展有限公司是 UFS Explorer Professional Recovery 数据恢复软件的授权代理商。 UFS Explorer Professional Recovery 数据恢复软件提供综合性的解决方案,用于解决复杂的数据恢复案例,包括那些采用特殊存储技术的案例,或介质受…

“解锁用户留存与复购:链动2+1模式的创新应用与策略“

大家好,我是吴军,担任一家知名软件开发公司的产品经理。 今天,我想和大家分享的是关于如何通过链动21模式来提升用户留存和复购率的策略。 尽管链动模式已经存在一段时间,但许多人认为它已经过时了。实际上,链动模式具…

【Text2SQL 论文】CHESS:利用上下文来合成 SQL 的 pipeline

文章目录 一、论文速读二、CHESS pipeline2.1 Entity and Context Retrieval2.2 Schema Selection2.3 Query Generation 三、预处理四、实验五、总结讨论 一、论文速读 本文提出了一个 pipeline 框架——CHESS——来解决应用于复杂的真实数据库场景下的 Text2SQL 问题。 在现…

vue3的个人理解

本文目的是记录使用vue3的时候的一些属性的个人理解。 一、defineExpose 官方说明 个人理解 在 <script setup>组件中&#xff0c;defineExpose可以暴露出组件的属性。项目实战// dialog组件 <script setup>import { ref } from vueimport { Close } from elemen…

【OCPP】ocpp1.6协议第4.5章节Firmware Status Notification的介绍及翻译

目录 4.5、固件状态通知Firmware Status Notification-概述 Firmware Status Notification 消息 Firmware Status Notification 请求消息 Firmware Status Notification 响应消息 使用场景 举例 FirmwareStatusNotification 请求示例 处理 FirmwareStatusNotification …

RAG与知识库搭建

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

ClickHouse快速安装教程(MacOS)

文章目录 ClickHouse快速安装教程&#xff08;MacOS&#xff09;1.ClickHouse2.快速安装3.快速启动3.1.启动服务器3.2.启动客户端 4.使用案例1.配置文件2.启动CK服务3.创建数据库4.创建表5.插入数据6.查询数据 ClickHouse快速安装教程&#xff08;MacOS&#xff09; 1.ClickHo…

如何利用 Google 搜索结果页来引导?

在数据驱动的决策世界中&#xff0c;获取准确而全面的信息至关重要。Google 搜索结果抓取是一种强大的技术&#xff0c;可以让企业、调查人员和研究人员从搜索引擎结果中提取可靠的数据。本综合指南将深入研究 Google 搜索结果的最佳实践、工具和道德考量&#xff0c;以确定能够…

PB-03F 二次开发——GPIO中断

文章目录 前言一、函数介绍1. hal_gpioin_register2. hal_gpio_init3. hal_gpio_pin_init4. hal_gpio_fast_write5. hal_gpio_read6. hal_gpioin_enable7. hal_gpioin_disable二、工具1. 硬件2. 软件 三、GPIO demo示例1. main.c2. 项目框架3. 注意 四、 烧录总结 前言 本文简…

数据结构下的线性回归模型

文章目录 1. 线性回归模型的基本概念与原理2. 数据结构在构建线性回归模型中的应用2.1 数组和矩阵2.2 列表2.3 字典2.4 数据框架 3. 线性回归模型的实现方法4. 示例代码演示总结 线性回归是统计学中最基础也是应用最广泛的预测模型之一&#xff0c;主要用于分析两个或两个以上变…

八轴光电测径仪在传统四大行业的具体应用

关键字:八轴测径仪, 智能测径仪,工业测径仪, 非接触测径仪,蓝鹏测控 八轴光电测径仪在多个行业中都有广泛的应用&#xff0c;尤其是在需要高精度尺寸控制的领域。以下是一些具体的应用实例&#xff1a; 这些应用展示了八轴光电测径仪在不同行业中的多样性和重要性。通过提供高精…

落地台灯什么牌子的比较好?五款适合学生使用的大路灯分享

以往只知道养孩子难&#xff0c;但到底有多难&#xff0c;心里确实没有个切实的预期&#xff0c;但随着我家孩子越长越大&#xff0c;我才知道原来想要把孩子的身心健康照顾好到底是有多难&#xff01;吃、穿、住、行无一不要精心挑选&#xff0c;就是为了能给他营造一个更好的…

StarRocks vs. Trino: 高并发性能背后的技术优势是什么?

Trino&#xff08;之前称 PrestoSQL&#xff09;项目最初由 Meta 开发&#xff0c;旨在让数据分析师能够在广泛的 Apache Hadoop 数据仓库上执行交互式查询。其高效处理大型数据集和复杂查询的能力&#xff0c;以及多数据源连接的灵活性&#xff0c;使其迅速成为大规模组织的首…

【初阶数据结构】深入解析顺序表:探索底层逻辑

&#x1f525;引言 本篇将深入解析顺序表:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &…

【必会面试题】布隆过滤器

目录 基本组成部分&#xff1a;工作原理&#xff1a;特点&#xff1a;一个简单的示例应用场景&#xff1a; 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种空间效率极高且查询速度很快的概率型数据结构&#xff0c;用于测试一个元素是否属于一个集合。布隆过滤器的基本…

【CGAL】Region_Growing检测圆柱,保存结果并输出圆柱体参数

目录 说明代码展示结果展示问题说明 说明 这篇博客以代码为主&#xff0c;使用CGAL中的region growing方法检测圆柱体。将不同的圆柱按不同颜色保存&#xff0c;并输出圆柱体的中心坐标、轴方向以及半径。 region growing的具体思想网上的文章已经有很多&#xff0c;可以参考这…

万界星空科技定制化MES系统,实现数字化生产

一、MES生产管理系统强调三个方面&#xff1a; 1、MES是对整个车间制造过程的优化&#xff0c;而不是单一的解决某个生产瓶颈。 2、MES必须提供实时收集生产过程中数据的功能&#xff0c;并作出相应的分析和处理。 3、MES需要与计划层和控制层进行信息交互&#xff0c;通过企业…