idea插件开发-环境搭建

news/2024/11/17 3:28:13/

工欲善其事,必先利其器。——《论语·卫灵公》

idea+gradle配置

idea下载地址:官网

gradle下载地址:官网

idea与gradle的配置这里就不做过多的赘述了,需要的同学可以参考一下地址进行配置。

idea:https://blog.csdn.net/saoang/article/details/124224783

gradle:https://www.jianshu.com/p/703a7ea96803

demo创建

idea创建项目时选择Gradle的IntelliJ Platform Plugin选项,如图所示:

请添加图片描述

配置完如上信息点击下一步,填写插件项目的基本信息:

请添加图片描述

gradle项目配置如下:

请添加图片描述

最后生成项目结构如下:

请添加图片描述

plugin配置文件详解:

<idea-plugin><!--插件的唯一id --><id>my.intellij.idea.plugins.demo</id><!--插件名称 --><name>Plugin display name here</name><!--插件开发用户信息 --><vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor><!--插件描述信息 idea插件下载时会抓取此信息 --><description><![CDATA[Enter short description for your plugin here.<br><em>most HTML tags may be used</em>]]></description><!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.htmlon how to target different products --><!-- depends 插件依赖其他插件配置 引用其他插件的id<depends>com.intellij.modules.lang</depends>--><extensions defaultExtensionNs="com.intellij"><!-- intellij的自定义扩展点信息--></extensions><actions><!-- 自定义actions --><action id="DemoWindows" class="com.my.intellij.idea.plugins.DemoWindows" text="DemoWindows"description="DemoWindows"><!--action展现的位置--><add-to-group group-id="ProjectViewPopupMenu" anchor="last"/></action></actions>
</idea-plugin>

除了在idea创建插件项目外,我们还可以下载github模板代码进行修改:

https://github.com/JetBrains/intellij-platform-plugin-template

请添加图片描述

接下来,我们来实现一个简单的窗口: 在项目中新建-》plugin DevKit-》Action
请添加图片描述
请添加图片描述

编写action代码,新增一个简单的提示语:

public class DemoWindows extends AnAction {@Overridepublic void actionPerformed(AnActionEvent e) {// TODO: insert action logic hereMessages.showInfoMessage("DemoWindows", "");}
}

运行测试成果:运行runIde命令,会启动一个新的idea,该idea中已经安装了你开发的插件。在该idea中可以直接使用插件,使用过程中,可以在项目里面断点跟进。启动的idea和正常idea操作是一样的,可以打开一个测试demo,来测试你的插件是否正常运行。

请添加图片描述
请添加图片描述
请添加图片描述

我们可以看到插件运行成功!

除了这种方式,我们也可以运行gradle的build命令生成zip文件,在自己的idea中进行本地安装自己的插件。

请添加图片描述

但是。。。 事情真的会这么一帆风顺么?

问题汇总

1、gradle引用maven仓库

可以参考:https://blog.csdn.net/rao991207823/article/details/110952583 进行配置。

2、can not download jbr-11_0_6-windows-i586-b520.43.tar.gz

当时遇到这个问题,我以为时gradle仓库配置的问题,检查了一遍发现仓库地址配置的没问题,去中央仓库查询却查询不到此依赖的资源。最后在github的issue上找到了类似的问题:https://github.com/jetbrains/gradle-intellij-plugin/issues/471

原来是因为未依赖的jdk设置的是1.8 64位版本 但是使用的jre 却是 32位版本的 最终造成这个奇怪的问题。

3、java.util.zip.ZipException: zip END header not found

报错信息如下:请添加图片描述

我在根据模板的方式生成插件项目时,demo\gradle\wrapper\gradle-wrapper.properties中配置的gradleb版本与模板中的版本不一致造成的,修改此配置为自己使用的gradle版本就迎刃而解了。
请添加图片描述

参考文档

idea插件官方文档(无中文):https://plugins.jetbrains.com/docs/intellij/welcome.html

idea插件文档翻译版本:https://kana112233.github.io/intellij-sdk-docs-cn/welcome.html

gradle官方文档:https://docs.gradle.org/current/userguide/userguide.html


http://www.ppmy.cn/news/125937.html

相关文章

27. 查看文件系统信息,blkid,xfs_info,dumpe2fs,blkid,语法详解,用法示例

查看文件系统信息&#xff0c;blkid,xfs_info,dumpe2fs,blkid,语法详解,用法示例 文章目录 blikd语法选项示例 xfs_info语法例子输出解释 dumpe2fs语法选项示范 总结友情链接 blikd 查询文件系统类型信息。用来对文件系统类型、LABEL、UUID等信息进行查询。需要事先安装e2fspr…

IntelliJ IDEA调试时点击停止按钮,程序并没有立即停止

Background 调试一段循环更新数据库的程序时&#xff0c;在更新语句处设置了一个断点&#xff0c;明明在更新了一条数据后停止了Debug&#xff0c;但是数据库里的数据却更新了2条。。 IntelliJ IDEA版本信息&#xff1a; IntelliJ IDEA 2019.3.3 (Ultimate Edition) Build #…

华为原厂预装系统出厂系统全系列恢复镜像安装

文件分享地址https://pan.baidu.com/s/16-CUOXJtiHeIw_h-Vou3lQ?pwd8888 HUAWEI MateBook 13 2020(WRTB) HUAWEI MateBook 13(HN&#xff09; HUAWEI MateBook 13 2021(WRTD) HUAWEI MateBook 13 锐龙版(HNL) HUAWEI MateBook 14(KLV) HUAWEI MateBook 14 2020(KLVC) HUAWEI …

intellij idea 启动报错 java.util.concurrent.CompletionException: java.net.BindException: Address already

welcome to my blog 错误描述: 启动intellij idea时报错 java.util.concurrent.CompletionException: java.net.BindException: Address already in use: bindat java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)at java.base…

Intellj IDEA在安装插件后无法打开

Intellj IDEA无法启动工程 Intellj IDEA在安装插件后无法启动工程起因处理经过结果 Intellj IDEA在安装插件后无法启动工程 起因 在换了一台新的笔记本之后&#xff0c;紧跟着也是把所有的环境&#xff0c;以及一些配置重新装了一遍&#xff0c;时隔两三年重新装这些东西&…

华为“杀疯了”:发布“摸鱼”神器10余款新品

或许&#xff0c;​你已经快被华为智慧办公产品包围了。 在笔记本电脑上“刷手机”是一种什么感觉&#xff1f; 比如摸鱼时间&#xff0c;坐在工位上的你可以在电脑上一键打开“开心消消乐”&#xff0c;而其他人只能去洗手间、吸烟区角落&#xff0c;是不是想想就挺爽的&…

OpenGl之变换

目录 缩放 位移 齐次坐标(Homogeneous Coordinates) 旋转 缩放 对一个向量进行缩放(Scaling)就是对向量的长度进行缩放&#xff0c;而保持它的方向不变。由于我们进行的是2维或3维操作&#xff0c;我们可以分别定义一个有2或3个缩放变量的向量&#xff0c;每个变量缩放一个轴…

第八篇、基于Arduino uno,获取MAX30102心率传感器的心率信息——结果导向

0、结果 说明&#xff1a;先来看看串口调试助手显示的结果&#xff0c;第一个值是原始的IR值&#xff0c;第二个值是实时的心跳&#xff0c;第三个值是平均心跳&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;MAX30102心率传感器的外观如下…