IntelliJ IDEA插件开发入门教程(一)
插件开发环境配置
IDEA分为社区版(Community Edition)和旗舰版(Ultimate Edition)
- 社区版:完全免费,代码开源,但是缺少一些旗舰版中的高级特性。
- 旗舰版:30天免费,支持全部功能,代码不开源。
开发IDEA的插件推荐使用社区版而不是旗舰版,因为社区版是开源的,在开发插件的时候,有源代码调试会比较方便。
插件开发详细步骤
1、下载IDEA社区版开源代码
2、配置IntelliJ Platform Plugin SDK
IntelliJ Platform Plugin SDK : 开发IntelliJ平台下的插件的SDK, 类似于开发Android应用程序需要Android SDK。IntelliJ Platform Plugin SDK基于JDK之上运行的
1)打开IDEA, Configure -> Project Defaults -> Project Structure
2) 配置JDK。因为Intellij Platform Plugin SDK需要基于JDK 。如图所示
3) 接下来选择Intellij Platform Plugin SDK,按照提示配置,SDK的路径选择/Applications/IntelliJ IDEA 15 CE.app/Contents
4)导入idea源代码.
选中下载好的zip解压。选中文件根目录导入
搭建插件简易工程
1、创建
Create new project -> IntelliJ Platform Plugin -> 输入project name
2、工程结构
|-IdeaPluginDemo||--- src||--- resources||--- META—INF||--- plugin.xml
3、创建一个action
Action是IDEA插件开发中比较基本的概念,插件利用Action来往菜单栏和工具栏添加新的菜单或按钮,Action继承了com.intellij.openapi.actionSystem.AnAction并实现public void actionPerformed(AnActionEvent event)方法,当对应的菜单栏或者工具按钮被点击,则Action被调用。
1) 新建一个Java类ShowLatteDescription继承com.intellij.openapi.actionSystem.AnAction,实现其中的public void actionPerformed(AnActionEvent event)方法:
实现加入一项菜单栏功能。
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;public class HelloWorldAction extends AnAction {@Overridepublic void actionPerformed(AnActionEvent e) {Project project = e.getData(PlatformDataKeys.PROJECT);String title = "标题";String msg = "2018,起航";Messages.showMessageDialog(project, msg, title, Messages.getInformationIcon());}
}
2) plugin.xml 配置
加入action配置
如下。
<action id="HelloWorld" class="HelloWorldAction" text="Say Hello!"><add-to-group group-id="WindowMenu" anchor="first"/></action>
4、run
运行的时候,会启动一个IDEA新的窗口。
在Window菜单栏中加入了我们自定义的“Say Hello!”选项。点击会弹出
5、插件打包和分发
5.1 打包
打开运行插件的IDEA, Preferences -> Plugins列表找到本次开发的插件(按照插件名字查)
插件开发完成,准备打包, 打开开发该插件的IDEA,点击如下图所示来进行build
在项目根目录生成一个和项目同名的jar,这就是一个可以部署的插件包。可供IDEA安装使用。安装插件,可以选择从本地磁盘加载。(在IDEA的插件管理面板,选择Install plugin from disk…来安装,重启以后就生效了。)
5.2 分发
可以参考官方文档
总结
上面演示了第一个插件的搭建过程。可以看下IDEA插件开发文档
IntelliJ IDEA插件开发入门教程(一)相关推荐
- 【直播回顾】蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程
主讲人:萧恺(蚂蚁金服-支付宝事业群-高级开发工程师) 本名:肖汉松 讲师介绍: 热爱阅读,喜欢挑战,热衷尝试新的技术,关注技术背后的原理. 关注领域:Java 服务端开发,分布式系统 关注语言:Ja ...
- IntelliJ IDEA开发入门教程
IntelliJ IDEA开发入门教程 本系列教程从 IntelliJ IDEA 的安装.卸载.软件设置.项目配置等各个方面进行讲解.通过本系列教程的学习,也希望你能爱上 IntelliJ IDEA, ...
- 基于jquery插件开发入门教程
鉴于最近要使用大量的jquery,所以总有一种捣鼓文字来抒发一下情绪的冲动.思前想后就来篇jquery插件开发入门教程吧,毕竟如果不想开发插件,那自己无论用别人的插件多牛逼,最多只是js的使用者,作为 ...
- virtualxposed使用教程_Xposed 插件开发入门教程(一)
其实网上已经有很多 Xposed 插件开发的入门教程了,我写的这篇与其说是教程,不如说是参考,为了防止以后忘了开发步骤,这里就写篇博客记录一下. 要使用 Xposed 插件,首先要 root 手机并安 ...
- IDEA 插件开发入门教程
2019独角兽企业重金招聘Python工程师标准>>> IntelliJ IDEA 是目前最好用的 JAVA 开发 IDE,它本身的功能已经非常强大了,但是每个人的需求不一样,有些需 ...
- IDEA 插件开发入门教程 1
IntelliJ IDEA 是目前最好用的 JAVA 开发 IDE,它本身的功能已经非常强大了,但是每个人的需求不一样,有些需求 IDEA 本身无法满足,于是我们就需要自己开发插件来解决.工欲善其事, ...
- Intellij IDEA插件开发入门
现今的IDE尽管有如"洪水猛兽"般强大,但要知道再强大的IDE也没法提供给使用者想要的一切功能, 所以IDE一般都提供有API接口供开发者自行扩展.下面以Intellij IDEA ...
- chrome插件开发入门教程
点击上方蓝字"优派编程"选择"加为星标",第一时间关注原创干货 原文地址 http://wp.fang1688.cn/study/539.html 这次我在ch ...
- Atom插件开发入门教程(四)
插件: 修饰文本 上一篇教程,我们已经开发了一个插件.下面我们来看看我们还能做什么.这篇文章会教你如何用一个简单的命令来替换选中的字符串内容.当你选中命令"cool" 时,下面的字 ...
最新文章
- Centos-Server-LNMP整合---源安装
- boost::intrusive::bucket_traits用法的测试程序
- cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程
- Effective Java(一)———— 代替构造器和Setter的构建器模式
- cdq分治(bzoj 1176: [Balkan2007]Mokia bzoj 2683: 简单题)
- 阿里巴巴Java开发手册v1.2.0版
- 杭州电子科技大学考研经验贴
- CF1169(div2)题解报告
- MapReduce实现QQ好友推荐
- 奇虎360 2017校招笔试题
- baseline的骨骼检测流程记录
- python中index函数_python的index函数用法 详解python中的index函数用法
- 每周阅读精选(2013-02-18)
- 职场人:你知道自己值多少钱吗?
- 华为云微认证考试简介
- Java 正则表达式 中的 任意字符
- ML笔记1——什么是ML;回归LossFunction(LF)推导;LF与凸函数关系;梯度下降推导;范数与正则化。
- 全网最全Fiddler攻略,十分钟了解Fiddler抓包
- 10年程序员怒斥:只会八股文没用,公司招你来是做项目的,不是背题的……
- 拉勾前端高薪就业课程笔记第十一弹(模块4-1)
热门文章
- 浏览器缓存带来的前端项目更新问题及解决方法
- 编程输入年份和月份,输出该月份有多少天。
- 三星手机电池循环清零代码_巅峰对决申真谞离奇“滑标”三星杯决赛首局柯洁轻松告捷...
- java进行抽奖_简单实现java抽奖系统
- 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_朴素贝叶斯(转载自Morgan)...
- SpringBoot+Vue实现供销链管理系统,值得学习!
- AI技术升级,景联文科技助力扫地机器人行业加快技术迭代,提供数据采集服务
- JAVA WEB课设心得——大学生毕业设计管理系统
- 面试必备:聊聊sql优化的15个小技巧
- 卷积神经网络手写体识别