自定义idea插件之hello idea plugin

news2024/11/29 10:56:20

写在前面

最近一直想研究下自定义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/1802182.html

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

相关文章

自然语言处理:第三十二章HippoRAG:性能提高20% - 受海马体启发的RAG

文章链接: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models 项目地址: OSU-NLP-Group/HippoRAG: HippoRAG is a novel RAG framework inspired by human long-term memory that enables LLMs to continuously integrate knowledge across e…

macbook本地部署 pyhive环境连接 hive用例

前言 公司的测试和生产环境中尚未提供基于Hive的客户端。若希望尝试操作Hive表,目前一个可行的方案是使用Python语言,通过借助pyhive库,您可以对Hive表进行各种操作。以下是一些示例记录供您参考。 一、pyhive是什么? PyHive是一…

电脑提示缺失iUtils.dll文件怎么办,分享几种靠谱的解决方法

在现代科技发展迅猛的时代,电脑已经成为我们生活和工作中不可或缺的工具。然而,随着使用时间的增长,电脑也会出现一些问题,其中之一就是开机时弹出窗口提示找不到iUtils.dll文件。这个问题可能会给用户带来困扰和不便,…

[AIGC] Springboot 自动配置的作用及理由

在详细解释SpringBoot的自动配置之前,先介绍以下背景知识。在创建现代复杂的应用程序时,一个困难的部分是正确地设置您的开发环境。这个问题尤其在Java世界中尤为突出,因为您必须管理和配置许多独立的标准和技术。 当我们谈论Spring Boot的自…

react 基础样式的控制(行内和className)

import ./index.cssconst style{color:red,font-size:150px }function App() {return (<div className"App"><h1>行内样式控制</h1><h1 style{{color:red,font-size:150px}} >asd </h1><span style{style} >asd </span>&l…

二叉排序树--c++

【相关知识】 二叉排序树&#xff08;也称二叉查找树&#xff09;&#xff1a;或者是一棵空的二叉树&#xff0c;或者是具有下列性质的二叉树&#xff1a; ⑴ 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于根结点的值&#xff1b; ⑵ 若它的右子树不空&#xff0c…

基本算法-枚举、模拟、递推(上)

目录 递归实现指数型枚举 题目描述 运行代码 代码思路 递归实现组合型枚举 题目描述 运行代码 代码思路 递归实现排列型枚举 题目描述 运行代码 代码思路 递归实现指数型枚举 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include<iostream> …

Java装饰器模式,装饰器模式通常通过创建一个接口和一个或多个实现了该接口的类来开始,然后创建装饰器类,这些类也实现了相同的接口

1、定义一个接口Component public interface Component { void operation(); }2、创建一个实现了Component接口的简单类SimpleComponent public class SimpleComponent implements Component { Override public void operation() { System.out.println("SimpleCom…

【JS重点知识05】正则表达式

本文章目标&#xff1a;学习正则表达式概念及语法&#xff0c;编写简单的正则表达式实现字符查找或检测&#xff1b; 一&#xff1a;正则表达式简介 1 什么是正则表达式 是用于匹配字符串中字符组合的模式。在JS中&#xff0c;正则表达式也是对象 2 正则表达式作用 表单验…

【C#】WinForm关闭新(二级)界面使主程序关闭

参考视频&#xff1a;https://www.bilibili.com/video/BV1JY4y1G7jo?p14&vd_source1c57ab1b2e551da5b65c0dfb0f05a493 1.背景介绍 主程序界面&#xff0c;点击弹出二级界面&#xff08;同时隐藏主界面&#xff09;&#xff0c;不做任何设置&#xff0c;这时关闭二级界面…

FM1202,FM020和利时备品

FM1202,FM020和利时备品,统硬件设备、数据库、控制算法、图形、报表&#xff09;和相关系统参数的设置。对整个系统进行监视和控制。操作员站主要完成以下FM1202,FM020和利时备品,各种监视信息的显示、查询和打印&#xff0c;主要有工艺流程图显示、趋势显示、参数列表显示、报…

将二叉排序树转换成双向链表--c++【做题记录】

【问题描述】 编写程序在不增加结点的情况下&#xff0c;将二叉排序树转换成有序双向链表&#xff08;如下图&#xff09;。 链表创建结束后&#xff0c;按照从前往后的顺序输出链表中结点的内容。 【输入输出】 【输入形式】 第一行输入数字n&#xff0c;第二行输入n个整数…

【CS.SE】浅谈: 程序员的职业素养与成长之路

文章目录 1 引言2 持续学习与自我提升2.1 永无止境的学习之路2.2 真实案例&#xff1a;自学Python 3 团队合作与沟通能力3.1 高效沟通是团队成功的基石 4 责任心与职业道德4.1 责任心&#xff1a;代码背后的承诺4.2 真实案例&#xff1a;修复紧急Bug 5 适应变化与快速反应5.1 适…

Linux安装MySQL教程【带图文命令巨详细】

巨详细Linux安装MySQL 1、查看是否有自带数据库或残留数据库信息1.1检查残留mysql1.2检查并删除残留mysql依赖1.3检查是否自带mariadb库 2、下载所需MySQL版本&#xff0c;上传至系统指定位置2.1创建目录2.2下载MySQL压缩包 3、安装MySQL3.1创建目录3.2解压mysql压缩包3.3安装解…

用Python代码锁定Excel单元格以及行和列

Excel能够帮助用户高效地组织数据&#xff0c;还支持复杂的公式计算和数据分析。而随着团队协作的日益频繁&#xff0c;保护数据的准确性和完整性变得尤为重要。在Excel表格中&#xff0c;我们可以通过锁定特定的单元格或区域&#xff0c;防止对单元格内容进行随意修改&#xf…

2024年全国大学生数据统计与分析竞赛B题论文和代码:电信银行卡诈骗检测数据分析和机器学习模型构建

2024年全国大学生数据统计与分析竞赛B题论文和代码已完成&#xff0c;代码为B题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解&#x…

人工智能--Foxmail邮箱使用方法

目录 &#x1f349;Foxmail全面指南 &#x1f349;下载与安装 &#x1f348;下载软件 &#x1f348;安装软件 &#x1f349;配置邮箱 &#x1f348;启动 Foxmail &#x1f348;添加邮箱账户 &#x1f348;手动配置邮箱 &#x1f34d;接收邮件服务器 (IMAP/POP3) &…

亘古真知

目录 一&#xff0c;概述 二&#xff0c;个人面板 三&#xff0c;科技面板 四&#xff0c;手牌 五&#xff0c;回合 1&#xff0c;行动 &#xff08;1&#xff09;打造 &#xff08;2&#xff09;学习 &#xff08;3&#xff09;归档 &#xff08;4&#xff09;挖掘 …

麒麟操作系统运维工程师(KYCP)课程,实现职业突破

在IT行业中&#xff0c;掌握先进的技能和知识是实现职业突破的关键。如果你希望在麒麟操作系统上成为一名卓越的运维工程师&#xff0c;那么麒麟操作系统运维工程师&#xff08;KYCP&#xff09;课程将是你的理想全面提升学员在麒麟操作系统环境下的运维能力。课程内容涵盖安全…

如何提高网站访问量?

提高网站访问量通常需要一个多方面的策略&#xff0c;涉及SEO、内容营销、社交媒体和其他网络营销手段&#xff0c;而我们仅从seo入手来说说 关键词优化是SEO的核心&#xff0c;它确保网站能够针对潜在用户的搜索查询进行优化。这不仅涉及在网站内容中使用正确的关键词 还需要…