当前位置: 首页> 文旅> 美景 > idea插件开发的第一天-写一个小Demo

idea插件开发的第一天-写一个小Demo

时间:2025/7/10 9:47:47来源:https://blog.csdn.net/qq_42413011/article/details/141787665 浏览次数:0次

介绍

Demo说明

  • 本文基于maven项目开发,idea版本为2022.3以上,jdk为1.8
  • 本文在Tools插件之上进行开发

Tools插件说明

  • Tools插件是一个Idea插件,此插件提供统一Spi规范,极大的降低了idea插件的开发难度,并提供开发者模块,可以极大的为开发者开发此插件提供便利
  • Tools插件安装需要idea2022.3以上版本
  • 插件下载连接: https://download.csdn.net/download/qq_42413011/89702325
  • sdk下载连接: https://download.csdn.net/download/qq_42413011/89702330
  • pojo-serializer插件: https://gitee.com/myprofile/pojo-serializer

正文

创建项目

在这里插入图片描述

pom文件和sdk设置

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lhstack</groupId><artifactId>tools-plugin-example</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>sdk</groupId><artifactId>sdk</artifactId><version>0.0.1</version><scope>system</scope><systemPath>${project.basedir}/lib/sdk-1.0.0.jar</systemPath></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><artifactSet><excludes><exclude>sdk:sdk</exclude></excludes></artifactSet></configuration></execution></executions></plugin></plugins></build></project>

在这里插入图片描述

创建PluginImpl

PluginImpl

package com.lhstack.aaa;import com.lhstack.tools.plugins.IPlugin;import javax.imageio.ImageIO;
import javax.swing.*;
import java.util.Objects;public class PluginImpl implements IPlugin {@Overridepublic JComponent createPanel(String projectHash) {return new JLabel("Demo", JLabel.CENTER);}@Overridepublic Icon pluginIcon() {try {return new ImageIcon(ImageIO.read(Objects.requireNonNull(PluginImpl.class.getClassLoader().getResourceAsStream("DEMO-48x48.png"))));} catch (Throwable e) {throw new RuntimeException(e);}}@Overridepublic Icon pluginTabIcon() {try {return new ImageIcon(ImageIO.read(Objects.requireNonNull(PluginImpl.class.getClassLoader().getResourceAsStream("DEMO-16x16.png"))));} catch (Throwable e) {throw new RuntimeException(e);}}@Overridepublic String pluginName() {return "Demo";}@Overridepublic String pluginDesc() {return "这是一个Demo插件描述";}@Overridepublic String pluginVersion() {return "0.0.1";}
}

META-INF/ToolsPlugin.txt

com.lhstack.PluginImpl

在这里插入图片描述

使用Tools插件的开发模块运行项目

编译项目,这两个位置都可以编译
在这里插入图片描述
运行
在这里插入图片描述

打包插件并安装

在这里插入图片描述
通过拖动或者点击按钮进行安装
在这里插入图片描述
在这里插入图片描述
双击插件
在这里插入图片描述
右键插件tab
在这里插入图片描述
新窗口打开
在这里插入图片描述
卸载插件
在这里插入图片描述
插件icon
在这里插入图片描述
在这里插入图片描述

关键字:idea插件开发的第一天-写一个小Demo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: