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:UsersAdministrator.IntelliJIdea13systemplugins-sandboxconfigoptions

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:UsersAdministrator.IntelliJIdea13systemplugins-sandboxconfigoptions中能够找到持久化xml文件cg.xml


2.插件打包后插件资源文件读取失败问题

插件项目打包后生成了zip文件(zip内包括有class文件和资源文件的jar包),安装后发现资源文件不能正常读取,原因在于资源文件放在了jar文件中面,常常有可能造成和没有打包成jar的情况时不一样的结果。解决方法能够參考http://www.iteye.com/topic/483115





版权声明:本文博客原创文章,博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/hrhguanli/p/4618685.html