插件开发环境配置

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插件开发入门教程(一)相关推荐

  1. 【直播回顾】蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程

    主讲人:萧恺(蚂蚁金服-支付宝事业群-高级开发工程师) 本名:肖汉松 讲师介绍: 热爱阅读,喜欢挑战,热衷尝试新的技术,关注技术背后的原理. 关注领域:Java 服务端开发,分布式系统 关注语言:Ja ...

  2. IntelliJ IDEA开发入门教程

    IntelliJ IDEA开发入门教程 本系列教程从 IntelliJ IDEA 的安装.卸载.软件设置.项目配置等各个方面进行讲解.通过本系列教程的学习,也希望你能爱上 IntelliJ IDEA, ...

  3. 基于jquery插件开发入门教程

    鉴于最近要使用大量的jquery,所以总有一种捣鼓文字来抒发一下情绪的冲动.思前想后就来篇jquery插件开发入门教程吧,毕竟如果不想开发插件,那自己无论用别人的插件多牛逼,最多只是js的使用者,作为 ...

  4. virtualxposed使用教程_Xposed 插件开发入门教程(一)

    其实网上已经有很多 Xposed 插件开发的入门教程了,我写的这篇与其说是教程,不如说是参考,为了防止以后忘了开发步骤,这里就写篇博客记录一下. 要使用 Xposed 插件,首先要 root 手机并安 ...

  5. IDEA 插件开发入门教程

    2019独角兽企业重金招聘Python工程师标准>>> IntelliJ IDEA 是目前最好用的 JAVA 开发 IDE,它本身的功能已经非常强大了,但是每个人的需求不一样,有些需 ...

  6. IDEA 插件开发入门教程 1

    IntelliJ IDEA 是目前最好用的 JAVA 开发 IDE,它本身的功能已经非常强大了,但是每个人的需求不一样,有些需求 IDEA 本身无法满足,于是我们就需要自己开发插件来解决.工欲善其事, ...

  7. Intellij IDEA插件开发入门

    现今的IDE尽管有如"洪水猛兽"般强大,但要知道再强大的IDE也没法提供给使用者想要的一切功能, 所以IDE一般都提供有API接口供开发者自行扩展.下面以Intellij IDEA ...

  8. chrome插件开发入门教程

    点击上方蓝字"优派编程"选择"加为星标",第一时间关注原创干货 原文地址 http://wp.fang1688.cn/study/539.html 这次我在ch ...

  9. Atom插件开发入门教程(四)

    插件: 修饰文本 上一篇教程,我们已经开发了一个插件.下面我们来看看我们还能做什么.这篇文章会教你如何用一个简单的命令来替换选中的字符串内容.当你选中命令"cool" 时,下面的字 ...

最新文章

  1. Centos-Server-LNMP整合---源安装
  2. boost::intrusive::bucket_traits用法的测试程序
  3. cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程
  4. Effective Java(一)———— 代替构造器和Setter的构建器模式
  5. cdq分治(bzoj 1176: [Balkan2007]Mokia bzoj 2683: 简单题)
  6. 阿里巴巴Java开发手册v1.2.0版
  7. 杭州电子科技大学考研经验贴
  8. CF1169(div2)题解报告
  9. MapReduce实现QQ好友推荐
  10. 奇虎360 2017校招笔试题
  11. baseline的骨骼检测流程记录
  12. python中index函数_python的index函数用法 详解python中的index函数用法
  13. 每周阅读精选(2013-02-18)
  14. 职场人:你知道自己值多少钱吗?
  15. 华为云微认证考试简介
  16. Java 正则表达式 中的 任意字符
  17. ML笔记1——什么是ML;回归LossFunction(LF)推导;LF与凸函数关系;梯度下降推导;范数与正则化。
  18. 全网最全Fiddler攻略,十分钟了解Fiddler抓包
  19. 10年程序员怒斥:只会八股文没用,公司招你来是做项目的,不是背题的……
  20. 拉勾前端高薪就业课程笔记第十一弹(模块4-1)

热门文章

  1. 浏览器缓存带来的前端项目更新问题及解决方法
  2. 编程输入年份和月份,输出该月份有多少天。
  3. 三星手机电池循环清零代码_巅峰对决申真谞离奇“滑标”三星杯决赛首局柯洁轻松告捷...
  4. java进行抽奖_简单实现java抽奖系统
  5. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_朴素贝叶斯(转载自Morgan)...
  6. SpringBoot+Vue实现供销链管理系统,值得学习!
  7. AI技术升级,景联文科技助力扫地机器人行业加快技术迭代,提供数据采集服务
  8. JAVA WEB课设心得——大学生毕业设计管理系统
  9. 面试必备:聊聊sql优化的15个小技巧
  10. 卷积神经网络手写体识别