您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > IntelliJIDEA培训
IntelliJIDEA插件开发入门指南AlexeyEfimovNote:这篇文章将帮助你了解IntelliJIDEA插件开发的基础知识,快速开发自己的插件。它讲解了日常插件开发的基本原则、语法描述和插件发布,同时包含了一个插件例子,一步步教你如何去开发插件。当你读完这篇文章后,你可以试用一下文章中开发的插件:SampleProject.zip(242Kb)你需要依据如何开始段落中的步骤1和2建立IntelliJIDEAJDK.这篇文章假设你正在使用IntelliJIDEA5.1或更高版本,或者是高于EAP#4121的版本。文章中涉及到的一些IntelliJIDEAOpenAPI中特性或类可能在以前的版本中并不存在。IntelliJIDEA插件开发基础内容约束条件介绍获取插件如何开始步骤1步骤2步骤3步骤4插件是如何工作的?IntelliJIDEA的组件模型加载组件卸载组件组件容器HelloWorld插件创建组件创建Action第一个插件添加配置插件的结构描述插件标识插件间的依赖关系版本和编译版本号组件注册本地化插件发布创建归档上传插件至插件库通报新插件总结和常用链接约束条件在IntelliJIDEA中,插件是独立的模块,它可以通过手动和内置工具的方式加载到IntelliJIDEA中。IntelliJIDEA的插件依据他们的功能可以进行分组,主要包括:代码审查和重构(InspectionGadgets,IntensionPowerPack,Refactor-J,Refactor-X等等)自定义编辑器(例如Images)和工具窗口(SQLQuery,PsiViewer等)其他语言支持(Groovy,JavaScript等)应用服务器整合(Resin,JBoss,Tomcat等)版本控制系统整合(CVS,Clearcase等)框架和其他技术支持(HibernateTools,IdeaSpring,XPathView,Struts等)外部应用整合(JiraBrowser,JFormdesigner等)用户界面提升,各种工具栏和菜单(TabSwitch,CVSbar等)自定义编译器(Native2Ascii)其他:包括各种工具插件和游戏(IdeaJad,simpleUML,Tetris,Sokoban等)目前IntelliJIDEA为插件开发人员提供了各种特性和功能,因此IDEA很多的特性都可以被扩展。在IntelliJIDEA5.0之前版本,没有提供对其他语言的支持,现在IDEA可以以插件的方式支持各种语言,如JavaScript,CSS,Groovy,SQL等等.渐渐地,通过版本更新,IntelliJIDEA将为插件开发人员提供特性,这些将通过IntelliJIDEAOpenAPI呈现出来。下面就是一些比较受欢迎的IntelliJIDEA插件:TabSwitch:小巧,但非常实用。它允许你在打开的各个文件中进行切换,就象使用Alt+Table快捷键切换Windows应用一样。SQLQuery:在IDE工具就可以编写并执行数据库查询语句,有时该工具就象呼吸一样非常必要。Regex:运行你在IDEA中校验各种正则表达式。XPathView:在编辑窗口中提供了XML文件的XPath处理能力.获取插件已经在插件库中注册过的插件可以点击File-Settings-Plugins菜单,插件管理器将会添加、更新和删除相关插件。如果你做了相关的操作,需要你重新启动IDEA使其生效。介绍首先下载插件列表,只需点击Available标签。如果你是通过代理服务器联到Internet,请点击HTTPProxySettings按钮,输入正确的信息。IntelliJIDEA会向插件库()发出请求,列出适用当前版本IDEA的所有插件。你只需在列表中选择该插件,然后点击下载图标,就可以安装该插件。以这种方式,你可以安装更多的插件。假想你现在决定开发一个插件来满足你同事的强烈需求,行,让我们开始吧。首先需要创建一个项目来包含你的插件。步骤1如果你还没有下载PluginDevelopmentPackage,请先下载此开发包.如果你使用EAP版本进行插件,你可以下载EAP的插件开发包,文件如idea4121-dev.zip,该文件位于IntelliJIDEAEAPAccess页面(4121是EAP的编译版本号)。如果你想下载发布版本的插件开发包,请访问IntelliJIDEAPluginDevelopers页面,点击PluginDevelopment链接去下载开发包文件,解压下载的开发包文件至IntelliJIDEA的安装目录。注意:开发包仅包括插件源码和IntelliJIDEAOpenAPI的Javadoc文档,所以及时没有该开发包你同样进行插件开发。然后我们推荐你下载并安装该开发包,它会让你的开发更加便捷。步骤2解压插件开发包以后,我们需要创建一个项目来编写我们的插件。点击File-NewProject菜单项,输入项目名称,如idea-plugins,然后设定项目的存储路径,点击Next。插件开发需要特定类型的JavaTMSDK(JDK):IntelliJIDEASDK,它是Jdk标准库和IntelliJIDEAOpenAPI库的整合体,你可以设置该SDK的JavaDoc和SourceCode,这些信息可以在插件开发包找到。点击Configure按钮,将会弹处Jdk设置窗口,点击AddIntelliJIDEASDK按钮(包含IDEA图标的那个按钮),该按钮如下所示:如何开始插件开发?选择IntelliJIDEA的安装目录(实际上IDEA会自动选择),然后点击OK按钮。接着,将该SDK的名称改为idea,SandboxHome是保存运行IDEA各种配置参数和缓存的目录,IDEA会将插件拷贝到该目录下进行调试,如果可能的话,请更改目录的sandbox存储目录。注意:这里我们推荐你不要使用IntelliJIDEA的SDK版本号,如果你使用EAP版本的话,这可能引起混乱,如IDEA4121名称可能在更高版本的IDEA的插件开发中引起误解。点击OK按钮,你会看到IntelliJIDEASDK会被显示在项目可用JDK的列表中。设置JDK你只需做一次,今后你只需从列表中选择即可。点击Next按钮。步骤3在下一个对话框中,选择Createsingle-moduleproject选项,然后点击Next按钮。这是我们需要设定module类型,这里需要选择PluginModule。接着我们需要设定module的名称和路径,如果我们是初学者,就让我们创建传统的HelloWorld插件,这里module名称最好能表达插件所代表的含义。点击Next按下;在下一个对话框中点击Finish即可。步骤4恭喜你!你已经完成了插件项目的创建,。在Project工具窗口中展开项目菜单树,找到plugin.xml文件(在META-INF目录下),这是插件的描述文件,包含插件的各种信息,如插件名称、描述、适用的IDEA版本号等等,同时包含component和action描述信息,该描述文件是IntelliJIDEA加载插件的依据。如果你创建了一个component,而没有在该描述文件中声明的话,IDEA并不会加载该component,请注意这点。plugin.xml文件包含各种信息,请不要忘记设定。解下来让我们设定插件的描述文件,让其工作起来。这里我们设定插件名称,描述和其他信息。让我们看一下since-build属性,在后面的我们会进行具体描述,现在我们只需设置为Help-About对话框中的编译版本号即可。META-INF/plugin.xml文件内容如下:!DOCTYPEidea-pluginPUBLICPlugin/DTD=4121//idea-plugin现在我们可以开始编写我们第一个插件啦。在进行HelloWorld插件开发之前,我们想向大家介绍一下插件工作的原理。所有的class和interface都来自于IntelliJIDEAOpenAPI开发包,你可以在插件开发包中找到。IntelliJIDEAcomponent模型IntelliJIDEA包含多种组件模型,这些组件模型都是基于PicoContainer,组件都包含在这些容器中,但容器有不同的级别。有三种级别的容器:application,project,和module.在application级别上可以包含多个project级别的容器;而project级别包含多个module级别容器。ApplicationComponent在IntelliJIDEA程序中,ApplicationConponent仅以一个实例存在。创建applicationcomponent,只需实现ApplicationComponent接口,然后在plugin.xml文件的application-components区域进行声明。Projectcomponents.在每一个打开项目中,仅包含一个projectcomponent实例,因此在IntelliJIDEA中可能包含多个Projectcomponent实例。创建一个projectcomponent,只需实现ProjectComponent接口,然后在plugin.xml文件的project-components区域进行声明即可。Modulecomponents.在没一个项目的module中,仅有一个modulecomponent实例,因此在一个项目中包含多个module-levelcomponent实例,实例的数量就是项目中加载的module的数量。创建modulecomponent,只需实现ModuleComponent接口,然后在plugin.xml文件的module-components区域进行声明。projectcomponent的实例数并不等于IntelliJIDEA打开的项目数量,而是大于打开的项目数。除了打开的项目包含项目组件,另一个项目是TemplateProject,它是一个隐藏的项目,IDEA一直加载这个项目。Component加载插件是如何工作的?ApplicationComponent在IDEA启动时加载。Project和modulecomponent在项目启动时共同加载。一个组件通过调用以下函数来实例化:1.首先加载Component的构造函数。2.如果组件实现JDOMExternalizable接口,将会调用readExternal函数。3.接下来initComponent函数将被调用。4.如果是project或modulecomponent,projectOpened函数将会被调用。如果是modulecomponent,moduleAdded函数会被调用。如果希望在component中访问其他component,我们只需在该component的构造函数声明即可,在这种情况下,IntelliJIDEA自动实例化所依赖的component,因此在构造函数中,所依赖的组件依据被实例化啦。有依赖关系的component实例化样例packagecom.intellij.tutorial.helloWorld;import...publicclassMyComponentimplementsApplicationComponent{privatefinalMyOtherComponentotherComponent;publ
本文标题:IntelliJIDEA培训
链接地址:https://www.777doc.com/doc-958760 .html