编写一个IDEA插件之:开发环境准备那些坑
不得不说,IDEA
确实强大,不知不觉已经成为我们Java
、Android
程序员的首选IDE
工具,不知不觉中,我们已经淡忘了Eclipse
。
IDEA
有着极强的扩展功能,它提供插件扩展支持,让开发者能够参与到IDEA
生态建设中,为更多开发者提供便利、提高开发效率。
我们常用的插件有Lombok
、Mybatis
插件,这些插件都大大提高了我们的开发效率。
即便IDEA
功能已经很强大,并且也已有很多的插件,但也不可能面面俱到,有时候我们需要自给自足。
如何准备插件开发环境
在开发插件之前,你可能需要先搭建环境。
你可能需要下载一个社区版本的IDEA
和源码,社区版IDEA
可以到官网下载,而源码可从gitee
克隆(从github
克隆太慢)。
从gitee
克隆:
git clone --depth 1 https://gitee.com/mirrors/intellij-community.git
因为源码项目太大,clone
到一半时可能会出错,需要使用--depth 1
指定克隆深度,1
表示只克隆最近一次commit
。
虽然--depth 1
只会把默认分支clone
下来,其他远程分支并不在本地,但我们不需要用到其它的分支,如果有需要,可以先git fetch
指定分支再切换到指定分支。
$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name
安装社区版后,我们在社区版的IDEA
开发插件。
需要先搭建环境,安装插件DevKit
,以及创建IntelliJ Platform SDK
。下图为官方文档中《搭建开发环境》部分的截图。
在新建插件项目时,选择IntelliJ Platform Plugin
,注意不要勾选Groovy
。勾选Groovy
表示你需要添加一些Groovy
的链接库和框架,此时底部的Use library
就不能为空。
本篇只是作为一个补充,分享笔者踩过的一些坑。
关于环境的准备网上有不少文章,详细步骤推荐阅读:
- 《从零开始编写
IntelliJ IDEA
插件》:https://juejin.im/post/6844904058625474573 - 官方教程(可使用谷歌浏览器的翻译插件翻译成中文阅读):https://jetbrains.org/intellij/sdk/docs/basics/getting_started.html
[Java艺术] 微信号:javaskill
一个只推送原创文章的技术公众号,分享Java后端相关技术。
- 区块链钱包mMoney向GooglePay、Applepay发起挑战
- Model验证系统运行机制是如何实现的?
- CentOS 6.8 部署zookeeper集群
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator
- 使用容器进行应用程序路由
- MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel
- ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidatorProviders
- 我所理解的RESTful Web API [设计篇]
- 黑箱难题阻碍了深度学习的普及与发展
- iOS 转场动画探究(一)
- XCode中如何使用事务
- 如何部署编译NDIS驱动的环境(内部资料)
- 深度学习的入门级装机配置推荐
- Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android | dagger细枝篇
- ES UpdateByQuery Java Api
- [Bazel]repository_rule() vs rule()
- Windows 系统信息收集姿势
- 小白学PyTorch | 3 浅谈Dataset和Dataloader
- 小白学PyTorch | 4 构建模型三要素与权重初始化
- 小白学PyTorch | 5 torchvision预训练模型与数据集全览
- 细品redis的Scan和Keys命令
- if语句与while语句
- 内网渗透 | 基于IPC的横向移动
- 【DB笔试面试866】队列等待之enq: TX - allocate ITL entry
- 【Vue.js】Vue.js组件库Element中的上传、评分、穿梭框和表单
- 【Vue.js】Vue.js项目构建
- 【Vue.js】Vue.js组件库Element中的表格、标签和进度条
- 用个小技巧,趁你不备,rm -rf你的电脑