实践idea插件开发(代码片段)

cj_eryue cj_eryue     2022-12-02     291

关键词:

目录

为什么开发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 的安装路径,如图

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

 

 

创建一个插件项目

 工程创建成功,工程目录如下,plugin.xml是核心配置文件:

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

<idea-plugin>
    
  <!-- 插件唯一id,不能和其他插件项目重复,所以推荐使用com.xxx.xxx的格式
       插件不同版本之间不能更改,若没有指定,则与插件名称相同 -->
  <id>com.your.company.unique.plugin.id</id>
   
  <!-- 插件名称,别人在官方插件库搜索你的插件时使用的名称 -->
  <name>CJPlugin</name>
  
  <!-- 插件版本号 -->
  <version>1.0</version>
    
  <!-- 供应商主页和email(不能使用默认值,必须修改成自己的)-->
  <vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>
  <!-- 插件的描述 (不能使用默认值,必须修改成自己的。并且需要大于40个字符)-->
  <description><![CDATA[
      Enter short description for your plugin here.<br>
      <em>most HTML tags may be used</em>
    ]]></description>
  <!-- 插件版本变更信息,支持HTML标签;
       将展示在 settings | Plugins 对话框和插件仓库的Web页面 -->
  <change-notes><![CDATA[
      Add change notes here.<br>
      <em>most HTML tags may be used</em>
    ]]>
  </change-notes>

 <!-- 插件兼容IDEAbuild 号-->
  <idea-version since-build="173.0"/>

  <!-- 插件所依赖的其他插件的id -->
  <depends>com.intellij.modules.platform</depends>

  <extensions defaultExtensionNs="com.intellij">
  <!-- 声明该插件对IDEA core或其他插件的扩展 -->
  </extensions>

  <!-- 编写插件动作 -->
  <actions>
  </actions>

</idea-plugin>
复制代码

启用 Plugin DevKit

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

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

创建一个动作action

 

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代码一样,也可以在需要的位置打上断点,这里就不演示了,我们直接看打包

打包插件

如果插件没有依赖任何 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

效果:

 

 

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

实验三敏捷开发与xp实践(代码片段)

实验三《敏捷开发与XP实践》实验报告一.敏捷开发与XP实践-1①实验要求:敏捷开发与XP实践http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的... 查看详情

20165201实验三敏捷开发与xp实践(代码片段)

##20165201实验三敏捷开发与XP实践敏捷开发与XP实践-1实验目的与要求:http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使... 查看详情

20165229实验三敏捷开发与xp实践(代码片段)

===任务一:1.实验要求实验三敏捷开发与XP实践(http://www.cnblogs.com/rocedu/p/4795776.html),Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->Reform 查看详情

20165220实验三敏捷开发与xp实践实验报告(代码片段)

实验三敏捷开发与XP实践-1实验要求:实验三敏捷开发与XP实践http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具... 查看详情

20165339实验三《敏捷开发与xp实践》实验报告(代码片段)

实验步骤参考http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->ReformateCode)把下面代码重新格式化,再... 查看详情

2018-2019-220175215实验三《敏捷开发与xp实践》实验报告(代码片段)

一、实验内容与步骤1.安装、使用alibaba插件规范代码在IDEA的setting中找到plugins并搜索alibaba,点击install进行安装重启IDEA后,在代码中右击点击编码规约扫描就可以使用了对老师给的示例代码进行扫描后的结果如下:规范后的代码... 查看详情

20165302敏捷开发与xp实践作业(代码片段)

20165302敏捷开发与XP实践实验报告一.提交点一1.实验要求参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->ReformateCode)把下面代码重新格式化,再研究一下Code菜... 查看详情

idea插件开发(代码片段)

文章目录前言插件工程创建插件工程结构plugin.xmlPluginActionAction是什么创建Action注册Action快速创建Action运行插件打包插件安装插件PluginComponentsComponents类型创建Component获取Component实例持久化PropertiesComponentPersistentStateComponent注册持... 查看详情

idea插件开发(代码片段)

文章目录前言插件工程创建插件工程结构plugin.xmlPluginActionAction是什么创建Action注册Action快速创建Action运行插件打包插件安装插件PluginComponentsComponents类型创建Component获取Component实例持久化PropertiesComponentPersistentStateComponent注册持... 查看详情

20155327实验三敏捷开发与xp实践(代码片段)

20155327实验三敏捷开发与XP实践实验内容任务一参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->ReformateCode)把下面代码重新格式化,再研究一下Code菜单,找出... 查看详情

20165226实验三敏捷开发与xp实践(代码片段)

实验三敏捷开发与XP实践实验目的一、安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->ReformateCode)格式化代码,研究一下Code菜单,比较功能。二、在码云上把自己的学习搭档加入自己的项目中,下载搭档实验... 查看详情

idea插件开发-helloworld(代码片段)

idea插件开发-helloworld1.本文环境2.新建插件项目SDK切换build.gradle文件3.新建第一个action4.启动项目并验证插件爬坑1.本文环境idea版本=2021.2.2java版本=11电脑=macbookm1确认是否安装了下面插件:2.新建插件项目使用gradle创建... 查看详情

20165309实验三敏捷开发与xp实践(代码片段)

...向对象程序设计》实验报告一、实验内容1.XP基础2.XP核心实践3.相关工具二、实验步骤(一)代码规范1.在IDEA中安装Alibaba插件,解决代码中的规范问题在项目名称上单击右键后选择"编码规约扫描",源代码存在的问题如图:根据... 查看详情

2017-2018-220165306实验三《敏捷开发与xp实践》实验报告(代码片段)

实验三《敏捷开发与XP实践》实验报告实验报告封面实验内容XP基础XP核心实践相关工具实验步骤(一)敏捷开发与XP实践-1实验要求:参考代码规范安装alibaba插件,解决代码中的规范问题。在IDEA中使用工具(Code->ReformateCode)... 查看详情

实验三《敏捷开发与xp实践》实验报告(代码片段)

一、实验内容 任务一1.参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD安装alibaba插件,解决代码中的规范问题。2.在IDEA中使用工具(Code->ReformateCode)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最... 查看详情

idea插件开发从0入门idea插件开发,idea插件开发教程,如何开发idea插件(代码片段)

idea插件介绍作为一枚程序员,平时最常用的ide就是IntelliJIDEA。平时会用到各种各样的插件,通过插件的使用,提高自己的开发效率。idea具有全局性,安装好插件后,对idea生效,所有的工程均能找到。idea... 查看详情

idea插件开发---extensionpoints(代码片段)

通过在插件中定义扩展点,您可以允许其他插件扩展您的插件的功能。有两种类型的扩展点:接口扩展点允许其他插件使用代码扩展您的插件。当您定义接口扩展点时,您指定了一个接口,其他插件将提供实现该... 查看详情

idea插件开发(11)---插件配置文件(代码片段)

以下是一个示例插件配置文件。此示例展示并描述了可在plugin.xml文件中使用的所有元素。有关配置的更多信息,请参见第II部分的“操作”部分。和元素中允许使用有限的HTML元素。但是,包含HTML元素的内容必须被<![CDA... 查看详情