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

后续补充...

时间: 2024-08-22 09:01:59

intellij idea的插件开发小结的相关文章

IntelliJ IDEA常用快捷键小结

IntelliJ Idea 常用快捷键列表 Ctrl+Alt+t 选择代码块 try catch Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等) mac系统 fn+alt+回车Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space 自动补全代码Ctr

IntelliJ IDEA 的日常应用

零.IntelliJ IDEA 快捷键应用小结 1.Ctrl+E :  打开最近所有浏览过的文件 2.Ctrl+Shift+E :打开最近所有编辑修改过的文件 3.ctrl+shift+Backspace :定位到最近修改文件具体代码的位置 4.ctrl+alt+左箭头/右箭头 :定位最近浏览文件的代码位置 5.F11 / ctrl + F11  : 为代码某一行加书签/标记 6.Ctrl+N : 快速定位类 7.Ctrl+shift+N: 快速定位类 8.ctrl+Alt+shift+N :

开发手册

当你看到这一章节时,你估计会骂我鸡婆.IoC,这个还要你来告诉我,我用SpringFramework已经很久啦.但我还是要说一下.IDEA整个组件结构是基于PicoContainer(http://www.picocontainer.org)的,PicoContainer是一个高效的嵌入式的DI容器.如果你有时间的话,我建议你花5分钟浏览一下PicoContainer,然后回到这篇文档来.     PicoContainer是有层次结构的,就是一个container可以包含子container,

赤裸裸的Mybatis之基础应用小结以及IntelliJ IDEA目录结构的一些小问题

IntelliJ IDEA目录结构的一些小问题 [赤裸裸的Mybatis之基础应用小结] 1.不管怎么样,先建立一个简单的MySQL数据表,如下所示 2.接下来要做的事情就是通过Mybatis对数据表进行基础的增删查改,写好bean以及打算实现的方法 import java.util.List; public class PersonDAO { public void savePerson(Person person) { } public void removePersonByName(Str

IntelliJ IDEA2016学习小结

前提:本人菜鸟一枚,欢迎狂黑. 网上找资料基本上全是15之前的,从16开始感觉交互页面改了好多,所以学起来还是很吃力. 1,改JDK,IDEA 2016只支持jdk1.8,(亲测)本地系统必须装1.8才行.然后在IDEA的File-->Project Structure-->Project Settings-->Project中将SDK改成安好的jdk1.8的版本 版本太低报的错: Error:Internal error: (java.lang.UnsupportedClassVers

Intellij插件开发教程1:用Intellij出的Gradle插件进行开发

前言:之前看到网上大部分的Intellij开发教程都是采用Intellij官方文档的那个版本,配置Intellij SDK一大堆的. 现在给大家介绍简单的方法吧,我们组内大神找到的.我们需要用到的是Intellij的gradle插件 plugins { id "org.jetbrains.intellij" version "0.2.18" } 关于这款插件的介绍:Gradle Intellij Plugin 做出的效果图: 插件运行和debug只需要运行gradl

IntelliJ IDEA 插件开发视频教程

学习了:http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/plugins-develop.html 这个IDEA教程不错:http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/ 原文地址:https://www.cnblogs.com/stono/p/9268974.html

Intellij IDEA教程.pdf

http://pan.baidu.com/s/1dDEaVxn 目录 Intellij IDEA 教程 ............................................................................................................................... 2 安装配置 ...............................................................

动手试试Android Studio插件开发

由于业务关系,经常需要写一些表单页面,基本也就是简单的增删改查然后上传,做过几个页面之后就有点想偷懒了,这么低水平重复性的体力劳动,能不能用什么办法自动生成呢,查阅相关资料,发现android studio插件正好可以满足需求,在Github上搜了一下,找到BorePlugin这个帮助自动生成布局代码的插件挺不错的,在此基础上修改为符合自己需求的插件,整体效果还不错. 发现了android studio插件的魅力,自己也总结一下,也给小伙伴们提供一点参考,今天就以实现自动生成findviewby