实践idea插件开发

目录

为什么开发idea插件?

开发插件流程(最简单的使用场景)

配置 IntelliJ Platform Plugin SDK

创建一个插件项目

启用 Plugin DevKit

创建一个动作action

打包插件

安装插件  


以前觉得开发idea的人真厉害啊,后来工作中用到各种插件,也不禁感叹,这些插件又是个什么玩意,是谁开发的啊,真厉害啊~

如今,领导安排,我也要改公司的插件了~~~

为什么开发idea插件?

目前已有插件并不能真的完全满足自己的需求。举个简单的栗子,比如,tomcat部署应用后,我想清除weapps下的应用,怎么办?

开发插件流程(最简单的使用场景)

环境准备:jdk11、idea

配置 IntelliJ Platform Plugin SDK

IntelliJ Platform Plugin SDK 就是开发 IntelliJ 平台插件的SDK, 是基于 JDK 之上运行的

  1. 导航到 File ->Project Structure,选择对话框左侧栏 Platform Settings 下的 SDKs
  2. 点击 + 按钮,先选择 JDK,指定 JDK 的路径;再创建 IntelliJ Platform Plugin SDK,指定 home path 为 IDEA 的安装路径,如图实践idea插件开发_第1张图片

3、创建好 IntelliJ Platform Plugin SDK 后,选择左侧栏 Project Settings 下的 Projects,在 Project SDK 下选择刚创建的 IntelliJ Platform Plugin SDK。

 实践idea插件开发_第2张图片

 

创建一个插件项目

实践idea插件开发_第3张图片

实践idea插件开发_第4张图片 工程创建成功,工程目录如下,plugin.xml是核心配置文件:

实践idea插件开发_第5张图片

核心配置(plugin.xml)文件说明 :


    
  
  com.your.company.unique.plugin.id
   
  
  CJPlugin
  
  
  1.0
    
  
  YourCompany
  
  
      most HTML tags may be used
    ]]>
  
  
      most HTML tags may be used
    ]]>
  

 
  

  
  com.intellij.modules.platform

  
  
  

  
  
  


复制代码

启用 Plugin DevKit

Plugin DevKit 是 IntelliJ 的一个插件,它使用 IntelliJ IDEA 自己的构建系统来为开发 IDEA 插件提供支持。开发 IDEA 插件之前需要安装并启用 Plugin DevKit 。

打开 IDEA,导航到 Settings | Plugins,若插件列表中没有 Plugin DevKit,点击 Install JetBrains plugin,搜索并安装。

实践idea插件开发_第6张图片

创建一个动作action

实践idea插件开发_第7张图片

 实践idea插件开发_第8张图片

action创建完成后,会自动在plugin.xml配置文件中生成配置 

编写action

package com.cjian.ideaplugin;

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;

/**
 * @Author: cjian
 * @Date: 2022/9/22 19:43
 * @Des:
 */
public class ClearAction extends AnAction {
    private static final String MESSAGE = "Sure to clear hot deploy?";

    @Override
    public void actionPerformed(AnActionEvent event) {
        // TODO: insert action logic here
        Project project = event.getData(PlatformDataKeys.PROJECT);
        int txt = Messages.showOkCancelDialog(MESSAGE, "Clear hotDeploy", Messages.getOkButton(), Messages.getCancelButton(), Messages.getInformationIcon());
        Messages.showMessageDialog(project, String.valueOf(txt), "Result", Messages.getInformationIcon());
    }
}

和我正常调试java代码一样,也可以在需要的位置打上断点,这里就不演示了,我们直接看打包

打包插件

实践idea插件开发_第9张图片

如果插件没有依赖任何 library,插件会被打包成一个 .jar,否则会被打包成一个 .zip,zip 中包含了所有的插件依赖

jar类型的插件包:

PluginDemo.jar/
  com/foo/...
  ...
  ...
  META-INF/
    plugin.xml

zip类型的插件包:

PluginDemo.zip/
  lib/
    libfoo.jar
    libbar.jar
    PluginDemo.jar/
      com/foo/...
      ...
      ...
      META-INF/
        plugin.xml

安装和使用都是一样的

安装插件  

实践idea插件开发_第10张图片

实践idea插件开发_第11张图片 安装完后,重启idea

效果:

实践idea插件开发_第12张图片

实践idea插件开发_第13张图片 

 

 到这里也算是知道插件是个啥了,也算是一个特殊的“项目”~

你可能感兴趣的:(工具,intellij-idea,java)