intellij idea该插件开发摘要
最近在做一个intellij idea插件,功能是读取表和数据库信息字段和预先定义的模板来生成代码文件(实体,service,springmvc该controller,freemark文件等)。
找了很多资料,发现intellij idea插件开发的资料不仅少并且非常多文档过期了,看了下官网的下载资料,到版本号8之后就没有公布插件开发的api和样例资料包。
开发中遇到最好的开发文档是《IntelliJ IDEA Plugin Development》(此文档的链接:http://wenku.baidu.com/link?url=0wRKHIJA7PSE4OcQBx9nVw1tcLXJsF3SNQcVEvf_lPkqdB-YE0q7GKnX6iGdRpkcJkxqODjQja0nARMx8zwkDacUqOKFpI6V0_V_-kGpfk)基本概念和样例能够在这篇文档中非常好地体现,在这里就不反复了。
这里暂且记录下开发中遇到的几个印象深刻的问题(开发环境。intellij
idea13):
1.配置信息的持久化
《IntelliJ IDEA Plugin Development》中的配置信息持久化方法已经过期了,并且api方式有非常大问题,比方用默认的的持久化类DefaultJDOMExternalizer配置信息的属性的訪问权限仅仅能为public,由于底层用的是反射方式。应该改为例如以下的配置方式:
@State( name = "com.xlight.code.generator.component.DBSettingApplicationComponent",
storages = {@Storage(file = "$APP_CONFIG$/cg.xml")})
//cg.xml默认地址 C:\Users\Administrator\.IntelliJIdea13\system\plugins-sandbox\config\options public class DBSettingApplicationComponent implements ApplicationComponent,
Configurable, PersistentStateComponent<DBSettingApplicationComponent> {
.....................其它代码在此处省略.................. @Nullable
@Override
public void loadState(DBSettingApplicationComponent state) {
XmlSerializerUtil.copyBean(state, this);
}
@Override
public DBSettingApplicationComponent getState() {
return this;
} }
在路径C:\Users\Administrator\.IntelliJIdea13\system\plugins-sandbox\config\options中能够找到持久化xml文件cg.xml
2.插件打包后插件资源文件读取失败问题
插件项目打包后生成了zip文件(zip内包括有class文件和资源文件的jar包),安装后发现资源文件不能正常读取,原因在于资源文件放在了jar文件中面,常常有可能造成和没有打包成jar的情况时不一样的结果。解决方法能够參考http://www.iteye.com/topic/483115
版权声明:本文博客原创文章,博客,未经同意,不得转载。
intellij idea该插件开发摘要的更多相关文章
- jQuery UI框架
jQuery UI框架 1.oschina开源社区-jQuery教程 2.jQuery PrimeUI(推荐) 3.弹出框.警告框.提示框.拖动支持.位置固定.选项卡切换 4.Bootstrap框架( ...
- Intellij IDEA插件开发入门
现今的IDE尽管有如"洪水猛兽"般强大,但要知道再强大的IDE也没法提供给使用者想要的一切功能, 所以IDE一般都提供有API接口供开发者自行扩展.下面以Intellij IDEA ...
- IntelliJ IDEA 插件开发视频教程
IntelliJ IDEA 插件开发视频教程 学习了:http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/plugins-develo ...
- Intellij IDEA 插件开发秘籍
来这里找志同道合的小伙伴! 这里总结一下 Intellij IDEA 插件开发的知识,供大家参考,本篇文章包含以下内容: 开发环境搭建 Component 介绍 Extension Point And ...
- IntelliJ IDEA/Android Studio插件开发指南
前言 目前在为安卓手机QQ做自动化的相关工作,包括UI自动化,逻辑层自动化等.使用到的uiautomator等框架,需要在Android Studio进行编码工作. 其中很多工作如果做到插件化的话,可 ...
- intellij idea 插件开发--快速定位到mybatis mapper文件中的sql
intellij idea 提供了openApi,通过openApi我们可以自己开发插件,提高工作效率.这边直接贴个链接,可以搭个入门的demo:http://www.jianshu.com/p/24 ...
- Intellij IDEA 插件开发之自建插件仓库
Intellij IDEA 有一个自己的官方的插件仓库,但是当我们的开发的 Intellij IDEA 的插件不能够对外公开时,我们就需要搭建自己的 Intellij IDEA 的插件仓库.前不久我们 ...
- Mac IntelliJ IDEA插件开发,IDEA Plugin SDK路径
On Mac, select application icon in /Applications/ 官方文档: Setting Up a Development Environment
- IntelliJ IDEA使用(3)——IDEA连接Git
摘要: Intellij IDEA作为最强大智能的IDE,内部已经集成了Git的功能,所以不用安装插件,连接Git@OSC也非常容易 首先安装git for windows 推荐使用这个:http:/ ...
随机推荐
- 手动配置S2SH三大框架报错(三)
十二月 08, 2013 10:24:43 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible vers ...
- 向大家推荐个android的游戏引擎——cocos2d-x
最近发现单单用android自带的功能函数来编写游戏,往往有很大的局限性,即耗时长,调试繁琐,没有一定的框架.所以博主发现了游戏引擎这个好东西,游戏引擎所拥有的架构和功能函数,使得游戏的编写更加得心应 ...
- Swift - 使用UIDatePicker实现倒计时功能
如果使用UIDatePicker时将模式设置为CountDownTimer,即可让该控件作为倒计时器来使用.效果图如下: 下面是代码示例: 1 2 3 4 5 6 7 8 9 10 11 12 ...
- go 冒泡排序
package main import ( "fmt" ) func main() { a := [...], , , , , , , , , } num := len(a) fm ...
- 程序启动读取和关闭时保存应用程序设置(QSettings)
保存应用程序设置(QSettings)1. QSettings 类 QSettings 提供保存应用程序当前设置的接口,可以方便地保存程序的状态,例如窗口大小和位置,选项的选中状态等等.在 Windo ...
- (萌O(∩_∩)O)哈希知识点小结
噶呜~先来了解一下什么是哈希吧? 当我们要在一堆东西中找到想要的那一个东西,我们常常通过比较来找,理想的情况是不经过任何比较,一次就能找到,怎么才能做到这样呢?那就在记录的储存位置和他的关键字之间建立 ...
- MySQL 更新走全表和索引的评估记录数
#!/usr/bin/perl use DBI; $db_name='scan'; $ip='127.0.0.1'; $user="root"; $passwd="123 ...
- 如何debug ruby
how to debug ruby: 1. 第一种方法,直接使用ruby内建的debug在命令行调试,这个个gdb或者pdb的命令差不多. ruby -r debug yourubyfile.rb 2 ...
- chrome查看headers
F12-> network标签, 刷新网页-> 找到该网页url,选择headers
- HDU3257 Hello World!
Hello World! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...