手把手教你5分钟从零开发一款简易的IDEA插件!项目经验/毕设不愁了!

简介: 来!开发一个自己的IDEA插件!

我这个人没事就喜欢推荐一些好用的 IDEA 插件给大家。这些插件极大程度上提高了我们的生产效率以及编码舒适度。

不知道大家有没有想过自己开发一款 IDEA 插件呢?

我自己想过,但是没去尝试过。刚好有一位读者想让我写一篇入门 IDEA 开发的文章,所以,我在周末就花了一会时间简单了解一下。

不过,这篇文章只是简单带各位小伙伴入门一下 IDEA 插件开发,个人精力有限,暂时不会深入探讨太多。如果你已经有 IDEA 插件开发的相关经验的话,这篇文章就可以不用看了,因为会浪费你 3 分钟的时间。

好的废话不多说!咱们直接开始!

01 新建一个基于 Gradle 的插件项目

这里我们基于 Gradle 进行插件开发,这也是 IntelliJ 官方的推荐的插件开发解决方案。

第一步,选择 Gradle 项目类型并勾选上相应的依赖。

选择 Gradle 项目类型并勾选上相应的依赖

第二步,填写项目相关的属性比如 GroupId、ArtifactId。

填写项目相关的属性

第三步,静静等待项目下载相关依赖。

第一次创建 IDEA 插件项目的话,这一步会比较慢。因为要下载 IDEA 插件开发所需的 SDK 。

02 插件项目结构概览

新建完成的项目结构如下图所示。

插件项目结构概览

这里需要额外注意的是下面这两个配置文件。

plugin.xml :插件的核心配置文件。通过它可以配置插件名称、插件介绍、插件作者信息、Action 等信息。

<idea-plugin>
    <id>github.javaguide.my-first-idea-plugin</id>
    <!--插件的名称-->
    <name>Beauty</name>
    <!--插件的作者相关信息-->
    <vendor email="koushuangbwcx@163.com" url="https://github.com/Snailclimb">JavaGuide</vendor>
    <!--插件的介绍-->
    <description><![CDATA[
     Guide哥代码开发的第一款IDEA插件<br>
    <em>这尼玛是什么垃圾插件!!!</em>
    ]]></description>

    <!-- please see https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
         on how to target different products -->
    <depends>com.intellij.modules.platform</depends>

    <extensions defaultExtensionNs="com.intellij">
        <!-- Add your extensions here -->
    </extensions>

    <actions>
        <!-- Add your actions here -->
    </actions>
</idea-plugin>

build.gradle :项目依赖配置文件。通过它可以配置项目第三方依赖、插件版本、插件版本更新记录等信息。

plugins {
    id 'java'
    id 'org.jetbrains.intellij' version '0.6.3'
}

group 'github.javaguide'
// 当前插件版本
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

// 项目依赖
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

// See https://github.com/JetBrains/gradle-intellij-plugin/
// 当前开发该插件的 IDEA 版本
intellij {
    version '2020.1.2'
}
patchPluginXml {
    // 版本更新记录
    changeNotes """
      Add change notes here.<br>
      <em>most HTML tags may be used</em>"""
}

没有开发过 IDEA 插件的小伙伴直接看这两个配置文件内容可能会有点蒙。所以,我专门找了一个 IDEA 插件市场提供的现成插件来说明一下。小伙伴们对照下面这张图来看下面的配置文件内容就非常非常清晰了。

插件信息

这就非常贴心了!如果这都不能让你点赞,我要这文章有何用!

03 手动创建 Action

我们可以把 Action 看作是 IDEA 提高的事件响应处理器,通过 Action 我们可以自定义一些事件处理逻辑/动作。比如说你点击某个菜单的时候,我们进行一个展示对话框的操作。

第一步,右键java目录并选择 new 一个 Action

第二步,配置 Action 相关信息比如展示名称。

在这里插入图片描述

创建完成之后,我们的 plugin.xml<actions>节点下会自动生成我们刚刚创建的 Action 信息:

<actions>
    <!-- Add your actions here -->
    <action id="test.hello" class="HelloAction" text="Hello" description="IDEA插件入门">
      <add-to-group group-id="ToolsMenu" anchor="first"/>
    </action>
</actions>

并且 java 目录下为生成一个叫做 HelloAction 的类。并且,这个类继承了 AnAction ,并覆盖了 actionPerformed() 方法。这个 actionPerformed 方法就好比 JS 中的 onClick 方法,会在你点击的时候被触发对应的动作。

我简单对actionPerformed 方法进行了修改,添加了一行代码。这行代码很简单,就是显示 1 个对话框并展示一些信息。

public class HelloAction extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        //显示对话框并展示对应的信息
        Messages.showInfoMessage("素材不够,插件来凑!", "Hello");
    }
}

另外,我们上面也说了,每个动作都会归属到一个 Group 中,这个 Group 可以简单看作 IDEA 中已经存在的菜单。

举个例子。我上面创建的 Action 的所属 Group 是 ToolsMenu(Tools) 。这样的话,我们创建的 Action 所在的位置就在 Tools 这个菜单下。

再举个例子。加入我上面创建的 Action 所属的 Group 是MainMenu (IDEA 最上方的主菜单栏)下的 FileMenu(File) 的话。

<actions>
    <!-- Add your actions here -->
    <action id="test.hello" class="HelloAction" text="Hello" description="IDEA插件入门">
      <add-to-group group-id="FileMenu" anchor="first"/>
    </action>
</actions>

我们创建的 Action 所在的位置就在 File 这个菜单下。

04 验收成果

点击 Gradle -> runIde 就会启动一个默认了这个插件的 IDEA。然后,你可以在这个 IDEA 上实际使用这个插件了。

点击 runIde 就会启动一个默认了这个插件的 IDEA

效果如下:

点击 runIde 就会启动一个默认了这个插件的 IDEA

我们点击自定义的 Hello Action 的话就会弹出一个对话框并展示出我们自定义的信息。

IDEA插件HelloWorld

05 完善一下

想要弄点界面花里胡哨一下, 我们还可以通过 Swing 来写一个界面。

这里我们简单实现一个聊天机器人。代码的话,我是直接参考的我大二刚学 Java 那会写的一个小项目(_当时写的代码实在太烂了!就很菜!_)。

首先,你需要在图灵机器人官网申请一个机器人。(_其他机器人也一样,感觉这个图灵机器人没有原来好用了,并且免费调用次数也不多_)

然后,简单写一个方法来请求调用机器人。由于代码比较简单,我这里就不放出来了,大家简单看一下效果就好。

代码地址:https://github.com/Snailclimb/awesome-idea/tree/master/code/first-idea-plugin

06 深入学习

如果你想要深入学习的 IDEA 插件的话,可以看一下官网文档:https://jetbrains.org/intellij/sdk/docs/basics/basics.html

这方面的资料还是比较少的。除了官方文档的话,你还可以简单看看下面这几篇文章:

07 后记

我们开发 IDEA 插件主要是为了让 IDEA 更加好用,比如有些框架使用之后可以减少重复代码的编写、有些主题类型的插件可以让你的 IDEA 更好看。

我这篇文章的这个案例说实话只是为了让大家简单入门一下 IDEA 开发,没有任何实际应用意义。如果你想要开发一个不错的 IDEA 插件的话,还要充分发挥想象,利用 IDEA 插件平台的能力。

早起肝文,还要早点出门!觉得不错,大家三连一波鼓励一下这“货”? (纯粹是为了押韵,不容易!年轻人讲啥武德!哈哈哈!)

图解计算机基础+个人原创的 Java 面试手册PDF版下载地址: 链接: https://pan.baidu.com/s/1S5VBDPzFSZO3p5uPNYdMzg 密码: 56bs

目录
相关文章
|
8天前
|
网络协议 Windows
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
这篇文章提供了解决IDEA插件下载慢或超时问题的方案,通过查找国内插件节点IP地址并修改本地hosts文件来加速下载。
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
|
11天前
|
Java
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
32 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
1月前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
可直接编辑jar包的IDEA插件-JarEditor
|
2月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
100 1
|
4天前
|
Windows
IDEA如何查看已经安装的插件并删除
【10月更文挑战第1天】这段内容主要介绍了如何在IntelliJ IDEA中查看和删除已安装的插件。可以通过软件内的插件市场查看插件列表,包括插件名称、版本号和供应商等信息;也可以通过访问插件目录查看。删除插件则建议在插件市场中进行,包括禁用和卸载步骤,手动删除插件文件夹的方法不推荐,因为可能存在配置残留等问题。
36 11
|
8天前
|
网络安全 开发工具 git
使用Idea提交项目到远程仓库
本文介绍了如何在Idea中创建Git本地仓库、提交更改,并推送代码到Gitee远程仓库的步骤,包括创建本地仓库、提交更改、复制远程仓库地址、配置远程仓库以及推送代码到远程仓库的过程。
使用Idea提交项目到远程仓库
|
2月前
|
Java Android开发
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
这篇文章介绍了在IntelliJ IDEA中如何设置项目编码格式,包括将项目编码修改为GBK或UTF-8的详细步骤和图解。
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
|
2月前
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
67 1
【插件】IDEA这款插件,爱到无法自拔
|
2月前
|
Java Maven
intellij idea如何查看项目maven依赖关系图
这篇文章介绍了如何在IntelliJ IDEA中查看项目的Maven依赖关系图,包括使用Maven工具栏和相关操作来展示和查看依赖细节。
|
2月前
|
Java Maven 开发者
"揭秘IDEA的神奇助手:Maven Helper插件,让你轻松驾驭复杂依赖,告别冲突噩梦!"
【8月更文挑战第20天】Maven Helper是一款提升Java开发者工作效率的IDEA插件,它能直观展示项目依赖关系并协助管理。主要功能包括依赖树视图、冲突检测与解决及依赖排除。安装简便,重启IDEA后即用。借助其“Dependencies”面板,开发者可以清晰了解依赖详情,快速定位并解决冲突问题,有效优化项目结构,提升开发效率。
69 0
下一篇
无影云桌面