• 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





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

  • 相关阅读:
    java后端工具积累
    Java基础面试题整理
    MySql常问面试题
    jvm及并发面试题
    中间件redis kafka面试题
    笔记
    解决Git操作报错
    view的state和drawable的state 源码分析
    flutter_6_动态化简介
    有关namespace 命名空间
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4618685.html
Copyright © 2020-2023  润新知