1. 开发环境搭建
1.1 IDE
使用idea社区版即可。
1.2 配置Plguin SDK
打开Project Structure设置面板,找到Platform Settings/SDKs:

点击上方“+”号,选择Plugin SDK:  Home Directory选择idea的安装根目录:  JDK选择idea自带的,如果有多个推荐使用版本低一些的:  创建完毕: 
你可以创建多个Plugin SDK,不过通常只需要一个。创建多个SDK的目的主要是用于同时开发调试多个插件时,可以通过配置不同的Sandbox Home 沙盒路径进行隔离,从而避免插件间相互影响。
1.3 创建插件工程
注意Project SDK选择上面创建好的 
这里有个是否勾选Groovy选择框困惑,如果你想采用纯java开发插件,那么这个框不用勾选,直接点击Next按钮即可;如果你想使用Groovy进行开发,那么需要勾选一下,勾选后,Use library就必须选择一个groovy sdk版本才能继续。下面介绍一下如何下载使用groovy sdk。
先到官网groovy-lang.org去下载合适版本的groovy sdk。注意通常不要下载最新版,否则可能与idea本身带版本不兼容而报错。  下载时注意选择这个bundle,然后解压缩到本地任意路径,然后在Use library点击Create按钮选择这个解压路径即可。
1.4 插件工程目录
目录 | 说明 |
---|
 | plugin.xml:插件清单文件 src:源码目录 .gitignore:git文件 IdeaPluginDemo.iml:插件工程配置文件 LICENSE:证书文件 README.md:项目文档 |
2. 调试、部署与发布
2.1 插件调试
创建调试用的configuration,注意类型选择Plugin:  然后打好断点,点击运行或调试按钮开始运行和调试: 
2.2 插件打包
点击build->prepare all plugin modules for deployment,会在工程根目录生成对应的jar或zip包。 
2.3 插件安装
两种方式:
- 直接拖拽jar或zip包到Idea的代码编辑区,会自动安装,并提示是否重启以生效;
- 从Settings->Plugins->Install plugin from disk…->选择文件安装;
推荐第一种,比较简单。
2.4 插件发布
插件支持发布到私有仓库和intellij公有仓库,以发布到公有仓库为例:
- 注册idea账号访问plugins.jetbrains.com/author/me/,登录插件库
 - 选择打包好的插件,进行上传,等待审核结果。一般需要2-3个工作日出结果。如果成功了,别人就可以在线搜索咱们开发的插件了。

3. 插件开发
这部分内容最多,所以放在最后。正如任何一个平台的APP一样,idea插件有很多的framework api需要学习,尤其是UI方面的,不过也是大同小异。一般学习路径是先了解其能力集,然后具体的在遇到具体开发需求时再去查阅。
本文中相关代码已传至IdeaPluginDemo,欢迎感兴趣的朋友查阅。
4. 参考资料
|