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

我这我的没事就喜欢推荐一些好用的 IDEA 插件给你们。这些插件极大程度上提升了咱们的生产效率以及编码温馨度。html

不知道你们有没有想过本身开发一款 IDEA 插件呢?java

我本身想过,可是没去尝试过。恰好有一位读者想让我写一篇入门 IDEA 开发的文章,因此,我在周末就花了一会时间简单了解一下。git

不过,这篇文章只是简单带各位小伙伴入门一下 IDEA 插件开发,我的精力有限,暂时不会深刻探讨太多。若是你已经有 IDEA 插件开发的相关经验的话,这篇文章就能够不用看了,由于会浪费你 3 分钟的时间。github

好的废话很少说!我们直接开始!面试

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

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

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

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

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

填写项目相关的属性

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

第一次建立 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