[未完成]plugin.xml文件
此文章部分转自:http://fxzcollege6.iteye.com/blog/2013055
关于plugin.xml文件我还总结过一篇文章:http://www.cnblogs.com/DreamDrive/articles/4586150.html
关于plugin.xml文件编辑视图如下:
在一个eclipse plugin的开发中plugin.xml是必须的,那么我们需要关注哪些点
我们用eclipse中的plug-in manifest edtor打开,我们可以看到在editor区域中看到几个tab页,下面分别介绍:
Overview
这里是这个插件工程的一些基本信息介绍,比如插件的名字,版本,id,编译执行环境等。我们需要关注的是右下角的Testing,这里提供了我们在开发中运行插件的两种方式普通和debug模式。
当然说到运行,我们还有其他的方式:
- 在package或navigator视图下选择工程右键>Run As>Run Configuration
- 直接在toolbar区域选择Run As/Debug As进行运行时的配置
这里说一个在开发中遇到的问题,在开发的开始阶段老是遇到java.lang.OutOfMemoryError: PermGen space,开始以为eclipse.ini中VM的配置参数过低,但在进行了相应的修改后启动仍然内存溢出,最后是在configurations中的Argument中显示配置VM参数解决,比如
在VM arguments中设置
-Xms128m -Xmx256m -XX:PermSize=128m -XX:MaxPermSize=128m
难道是打开的plugin运行时启动的eclipse会吃掉主的内存,导致分配的太少而溢出?
既然说到run configuration,那么可能还有几个需要关注
- Main tab下的一些配置
- Plug-ins下lanch with中的插件可能默认会全部选中,其实我们可以先Deselect All,然后选中我们需要运行的plugin,再Add Required plug-ins
Dependecies
这里是这个插件工程需要依赖的各种插件,这里包括依赖eclipse本身的各种组件。比如运行时org.eclipse.core.runtime,比如你需要在你插件工程中打开java文件,那么需要org.eclipse.jdt.core、org.eclipse.ui.workbench.texteditor等,同时你也可以增加第三方依赖插件。通过Add按钮,在弹出窗中输入相应的插件添加
Runtime
我们可以看到两个地方需要关注:
- Exported Packages:这个是你这个插件中向外暴露的包,你可以添加需要向外暴露的结构,那么应用你这插件的其他工程就可以访问你相应的接口
- Classpath:当前插件工程运行依赖的第三方jar包,一般我们把第三方依赖的包放在工程根目录下的lib文件夹内
Extensions/Extensions Points
扩展和扩展点,前者是指引入其他插件的扩展点,后者是当前工程暴露出的扩展点。
- 比如你的插件工程中有视图,那么你需要引入org.eclipse.ui.views在这个扩展点下,你可以定义相关的视图。这里引入也会在plugin.xml中体现:point="org.eclipse.ui.views"
- 如果这个扩展点下可以有多个view视图,也可以有category标签会将相应的视图归类,比较直观的是在eclipse的window>show view>...中体现
至于扩展点,网上例子较多,在实际项目中没有使用,不便多说
Build
这是编译插件时需要包含的资源,在Binary Build的时候勾上需要的资源吧,记得在开始的时候老是忘记lib包,导致编译错误或使用就报错
MANIFEST.MF和build.properties
这里其实对前几个tab页中内容自动生成,比如包含Require-Bundle、Bundle-ClassPath、Export-Package等
plugin.xml
这部分内容是比较重要的,比如描述了各种actionSets,extension point
扩展点point="org.eclipse.ui.views"
- 比如声明一个视图
<extension id="com.plugin.sample.sampleView" point="org.eclipse.ui.views"> <category name="Sample" id="com.plugin.eclipse.sample"> </category> <view category="com.plugin.eclipse.sample" class="com.plugin.eclipse.sample.views.SampleView" icon="icons/sample.png" id="com.plugin.eclipse.samle.views.sampleView" name="SampleView"> </view> </extension>
- 比如某个菜单只作用于java类
扩展点:point="org.eclipse.ui.popupMenus
xml代码
<extension point="org.eclipse.ui.popupMenus"> <objectContribution id="com.plugin.eclipse.sample.popupMenu" objectClass="org.eclipse.core.resources.IFile" adaptable="true" nameFilter="*.java"> <menu label="Sample" path="additions" id="com.plugin.eclipse.sample.menu" icon="icons/sample.png"> <separator name="group"> </separator> </menu> <action class="com.plugin.eclipse.sample.SampleAction" enablesFor="+" icon="icons/sample.png" id="com.plugin.eclipse.sample.sampleAction" label="SampleAction" menubarPath="com.plugin.eclipse.sample.menu/group"> </action> </objectContribution> </extension>
扩展点point="org.eclipse.ui.actionSets
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin> <extension point="org.eclipse.ui.actionSets"> <actionSet label="Fletcher的工具集" visible="true" id="fletcher.plugins.actionSet"> <menu label="fletcher'menu(&M)" id="fletcherMenu"> <separator name="fletcherGroup"> </separator> </menu> <action label="fletcher(&S)" icon="icons/sample.gif" class="fletcher.plugins.SampleAction" tooltip="Hello,Eclipse world" menubarPath="fletcherMenu/fletcherGroup" toolbarPath="fletcherGroup" id="fletcher.plugins.SampleAction"> </action> </actionSet> </extension> </plugin>
<!--point="org.eclipse.ui.actionSets":用于设置插件的扩展点,其中"actionSets"对应着Eclipse中的菜单、菜单项和工具栏中按钮的扩增点.-->
<!-- <actionSet>:用于设置一个action组,对应着新增的菜单和按钮.其中的label属性用于设置显示时的名称.Visible属性用于设置对应的菜单或者按钮是否显示.Id属性是作为唯一标识符使用的,注意在一个plugin.xml文件中,要确保其唯一性.-->
<!-- <menu>:作为<actionSet>的子项,该项用于设置在Eclipse环境的菜单栏中添加一个新的主菜单,例如在上面的程序中对应的菜单名称为"样本菜单(&M)".其中的<separator>是一个结束符,用于实现菜单中命令的分组.-->
<!-- <action>:作为<actionSet>的子项,该项用于设置在对应的菜单项和工具栏中的按钮.其中,label属性用于设置对应菜单项显示的名称,当对应着工具栏中的按钮的图标
无法找到时,在按钮位置同样显示这里设置的名称.icon属性用于图标的路径.class属性用于设置单击按钮或者选择菜单中的命令后对应执行的类,注意要将完整的包名写上.
Tooltip属性用于设置悬停时的提示性信息.menbarPath属性表示将该action对应的菜单项放置在<menu>所设置的菜单中.toolbarPath表示将该action同时作为一个
工具栏中的按钮.id属性用于设置唯一性标识.一般和class保持一致即可.-->
[未完成]plugin.xml文件的更多相关文章
- [未完成]关于xml文件的解析
附录一个比较特别的xml文件. MultiNamespaceInlineRequest.xml <?xml version="1.0" encoding="ISO- ...
- RCP: MANIFEST.MF, plugin.xml, build.properties三种文件的区别
在Eclipse插件开发中, MANIFEST.MF, plugin.xml, build.properties是三种最常见的文件,由于它们共享同一个编辑器(Plug-in Manifest Edit ...
- 【eclipse插件开发实战】Eclipse插件开发4——插件JDE、PDE开发方式及plugin.xml配置文件结构
Eclipse插件开发4--插件JDE.PDE开发方式及plugin.xml配置文件结构 开发方式分为:java开发环境JDE开发插件的方式和插件开发环境PDE开发插件方式. 插件通过添加到预定义的扩 ...
- Maven-pom.xml文件报错 Plugin execution not covered by lifecycle configuration
问题: Eclipse中新导入的项目pom.xml文件报错: Plugin execution not covered by lifecycle configuration: org.jacoco:j ...
- 史上最全的maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- (六)Maven之pom.xml文件简单说明
通过前面几部分知识,我们对maven已经有了初步的印象,就像Make的Makefile.Ant的build.xml一样,Maven项目的核心是pom.xml.POM(Project Object Mo ...
- 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题
首先 关于dom4j的API,有如下: 当然 其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...
- Maven项目pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 史上最全的maven pom.xml文件教程详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- Mysql数据库插入的中文字段值显示问号的问题解决
最近我使用myeclipse连接mysql数据库查询表中的数据,表中字段值为中文的字段显示问号,查了很多资料将解决方法总结如下: 步骤一:修改mysql数据库的配置文件my.ini或者my-defau ...
- 【转】你真的了解iOS代理设计模式吗?
转自:http://www.cocoachina.com/ios/20160317/15696.html 在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递 ...
- delphi回调函数
文章来源: http://anony3721.blog.163.com/blog/static/5119742010866050589/ 一.主单元 unit UnMain; interface us ...
- Linux下的vi编辑命令中查找·替换详解
一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之后,使 ...
- CodeForces 689A Mike and Cellphone (模拟+水题)
Mike and Cellphone 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/E Description While sw ...
- oracle 全文检索技术
1.查看用户: select * from dba_users WHERE username='CTXSYS';select * from dba_users WHERE username='CTXS ...
- ADO.NET 快速入门(九):使用关系型数据
DataSet 可以包含非关联表,也可以包含关联表.你可以把 DataSet 想象成一个文档数据.事实上,除了 DataSet 是基于层级模型的,其它和 XML 数据文档是一样的.由于数据通常存储在关 ...
- Android学习第一课
首先看一个android项目中各个包的作用 以下看几个经常使用的控件: 1. TextView 显示文本框控件 2. EditText 输入文本框 TextView控件经常使用属性: id----控件 ...
- Codeforces Round #333 (Div. 2) C. The Two Routes flyod
C. The Two Routes Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/602/pro ...
- Codeforces Round #328 (Div. 2) C. The Big Race 数学.lcm
C. The Big Race Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/592/probl ...