当前位置:   article > 正文

实践idea插件开发_intellij platform plugin sdk

intellij platform plugin sdk

目录

为什么开发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)文件说明 :

  1. <idea-plugin>
  2. <!-- 插件唯一id,不能和其他插件项目重复,所以推荐使用com.xxx.xxx的格式
  3. 插件不同版本之间不能更改,若没有指定,则与插件名称相同 -->
  4. <id>com.your.company.unique.plugin.id</id>
  5. <!-- 插件名称,别人在官方插件库搜索你的插件时使用的名称 -->
  6. <name>CJPlugin</name>
  7. <!-- 插件版本号 -->
  8. <version>1.0</version>
  9. <!-- 供应商主页和email(不能使用默认值,必须修改成自己的)-->
  10. <vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>
  11. <!-- 插件的描述 (不能使用默认值,必须修改成自己的。并且需要大于40个字符)-->
  12. <description><![CDATA[
  13. Enter short description for your plugin here.<br>
  14. <em>most HTML tags may be used</em>
  15. ]]></description>
  16. <!-- 插件版本变更信息,支持HTML标签;
  17. 将展示在 settings | Plugins 对话框和插件仓库的Web页面 -->
  18. <change-notes><![CDATA[
  19. Add change notes here.<br>
  20. <em>most HTML tags may be used</em>
  21. ]]>
  22. </change-notes>
  23. <!-- 插件兼容IDEAbuild 号-->
  24. <idea-version since-build="173.0"/>
  25. <!-- 插件所依赖的其他插件的id -->
  26. <depends>com.intellij.modules.platform</depends>
  27. <extensions defaultExtensionNs="com.intellij">
  28. <!-- 声明该插件对IDEA core或其他插件的扩展 -->
  29. </extensions>
  30. <!-- 编写插件动作 -->
  31. <actions>
  32. </actions>
  33. </idea-plugin>
  34. 复制代码

启用 Plugin DevKit

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

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

创建一个动作action

 

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

编写action

  1. package com.cjian.ideaplugin;
  2. import com.intellij.openapi.actionSystem.AnAction;
  3. import com.intellij.openapi.actionSystem.AnActionEvent;
  4. import com.intellij.openapi.actionSystem.PlatformDataKeys;
  5. import com.intellij.openapi.project.Project;
  6. import com.intellij.openapi.ui.Messages;
  7. /**
  8. * @Author: cjian
  9. * @Date: 2022/9/22 19:43
  10. * @Des:
  11. */
  12. public class ClearAction extends AnAction {
  13. private static final String MESSAGE = "Sure to clear hot deploy?";
  14. @Override
  15. public void actionPerformed(AnActionEvent event) {
  16. // TODO: insert action logic here
  17. Project project = event.getData(PlatformDataKeys.PROJECT);
  18. int txt = Messages.showOkCancelDialog(MESSAGE, "Clear hotDeploy", Messages.getOkButton(), Messages.getCancelButton(), Messages.getInformationIcon());
  19. Messages.showMessageDialog(project, String.valueOf(txt), "Result", Messages.getInformationIcon());
  20. }
  21. }

和我正常调试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

效果:

 

 

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/680690
推荐阅读
相关标签
  

闽ICP备14008679号