赞
踩
目录
配置 IntelliJ Platform Plugin SDK
以前觉得开发idea的人真厉害啊,后来工作中用到各种插件,也不禁感叹,这些插件又是个什么玩意,是谁开发的啊,真厉害啊~
如今,领导安排,我也要改公司的插件了~~~
目前已有插件并不能真的完全满足自己的需求。举个简单的栗子,比如,tomcat部署应用后,我想清除weapps下的应用,怎么办?
环境准备:jdk11、idea
IntelliJ Platform Plugin SDK 就是开发 IntelliJ 平台插件的SDK, 是基于 JDK 之上运行的
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 是 IntelliJ 的一个插件,它使用 IntelliJ IDEA 自己的构建系统来为开发 IDEA 插件提供支持。开发 IDEA 插件之前需要安装并启用 Plugin DevKit 。
打开 IDEA,导航到 Settings | Plugins,若插件列表中没有 Plugin DevKit,点击 Install JetBrains plugin,搜索并安装。
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
效果:
到这里也算是知道插件是个啥了,也算是一个特殊的“项目”~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。