最近在做一个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该插件开发摘要的更多相关文章

  1. jQuery UI框架

    jQuery UI框架 1.oschina开源社区-jQuery教程 2.jQuery PrimeUI(推荐) 3.弹出框.警告框.提示框.拖动支持.位置固定.选项卡切换 4.Bootstrap框架( ...

  2. Intellij IDEA插件开发入门

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

  3. IntelliJ IDEA 插件开发视频教程

    IntelliJ IDEA 插件开发视频教程 学习了:http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/plugins-develo ...

  4. Intellij IDEA 插件开发秘籍

    来这里找志同道合的小伙伴! 这里总结一下 Intellij IDEA 插件开发的知识,供大家参考,本篇文章包含以下内容: 开发环境搭建 Component 介绍 Extension Point And ...

  5. IntelliJ IDEA/Android Studio插件开发指南

    前言 目前在为安卓手机QQ做自动化的相关工作,包括UI自动化,逻辑层自动化等.使用到的uiautomator等框架,需要在Android Studio进行编码工作. 其中很多工作如果做到插件化的话,可 ...

  6. intellij idea 插件开发--快速定位到mybatis mapper文件中的sql

    intellij idea 提供了openApi,通过openApi我们可以自己开发插件,提高工作效率.这边直接贴个链接,可以搭个入门的demo:http://www.jianshu.com/p/24 ...

  7. Intellij IDEA 插件开发之自建插件仓库

    Intellij IDEA 有一个自己的官方的插件仓库,但是当我们的开发的 Intellij IDEA 的插件不能够对外公开时,我们就需要搭建自己的 Intellij IDEA 的插件仓库.前不久我们 ...

  8. Mac IntelliJ IDEA插件开发,IDEA Plugin SDK路径

    On Mac, select application icon in /Applications/ 官方文档: Setting Up a Development Environment

  9. IntelliJ IDEA使用(3)——IDEA连接Git

    摘要: Intellij IDEA作为最强大智能的IDE,内部已经集成了Git的功能,所以不用安装插件,连接Git@OSC也非常容易 首先安装git for windows 推荐使用这个:http:/ ...

随机推荐

  1. iText 文本

    iText中用文本块(Chunk).短语(Phrase)和段落(paragraph)处理文本. 文本块(Chunk)是处理文本的最小单位,有一串带格式(包括字体.颜色.大小)的字符串组成.如以下代码就 ...

  2. SQLServer行转列

    近期面试遇到了一道面试题.顿时有点迷糊,仅仅说出了思路.后来百度了一下.整理了一下思路,于是记录下来,方便以后学习.(面试题请參见附件) 相关的数据表: 1.Score表 2.[User]表 SQL语 ...

  3. ABAP 负号前置方法汇总

    ABAP 负号前置方法汇总 开发过程中有这样的一个需求,要求指定数字栏位负号前置: 方法一: PERFORM FRM_MOVE_DATA_MINUS CHANGING L_CHAR20. ” 负号前置 ...

  4. c++ __declspec关键字详细用法

    c++ __declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的 ...

  5. hibernate.cfg.xml文件的配置模板和不同数据库的配置參数

    (1)hibernate.cfg.xml文件的配置模板 <?xml version="1.0" encoding="UTF-8"?> <!DO ...

  6. Struts2获取演示示例教程

    回想Struts2的使用过程,网上搜的教程多多少少都会有点问题.又一次记录下创建过程,方便查阅. 1.下载Struts2的jar包 下载地址:http://archive.apache.org/dis ...

  7. c#Lamdba表达式与托付

    介绍: "Lambda表达式"(lambda expression)是一个匿名函数,在C#3.0中引入了lambda表达式,它是对匿名函数的一种简化,能够包括表达式和语句,而且可用 ...

  8. JAVA网络爬虫WebCollector深度解析——爬虫内核

    WebCollector爬虫官网:https://github.com/CrawlScript/WebCollector 技术讨论群:250108697 怎样将爬虫内核导入自己的项目? 1.进入爬虫官 ...

  9. poj1639 Picnic Planning 最小度数限制生成树

    题意:若干个人开车要去park聚会,可是park能停的车是有限的,为k.所以这些人要通过先开车到其它人家中,停车,然后拼车去聚会.另外,车的容量是无限的,他们家停车位也是无限的. 求开车总行程最短. ...

  10. 基于Predictive Parsing的ABNF语法分析器(十三)——rulelist、rule、rulename、define-as和elements

    我们来看看rulelist,它是整个ABNF文法的入口,就是说一个ABNF文法就是一个规则列表rulelist.一个rulelist由若干个rule规则组成,每个rule由规则名rulename.定义 ...