在一个eclipse plugin的开发中plugin.xml是必须的,那么我们需要关注哪些点
我们用eclipse中的plug-in manifest edtor打开,我们可以看到在editor区域中看到几个tab页,下面分别介绍:
Overview
这里是这个插件工程的一些基本信息介绍,比如插件的名字,版本,id,编译执行环境等。我们需要关注的是右下角的Testing,这里提供了我们在开发中运行插件的两种方式普通和debug模式。
当然说到运行,我们还有其他的方式:
这里说一个在开发中遇到的问题,在开发的开始阶段老是遇到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,那么可能还有几个需要关注
Dependecies
这里是这个插件工程需要依赖的各种插件,这里包括依赖eclipse本身的各种组件。比如运行时org.eclipse.core.runtime,比如你需要在你插件工程中打开java文件,那么需要org.eclipse.jdt.core、org.eclipse.ui.workbench.texteditor等,同时你也可以增加第三方依赖插件。通过Add按钮,在弹出窗中输入相应的插件添加
Runtime
我们可以看到两个地方需要关注:
Extensions/Extensions Points
扩展和扩展点,前者是指引入其他插件的扩展点,后者是当前工程暴露出的扩展点。
至于扩展点,网上例子较多,在实际项目中没有使用,不便多说
Build
这是编译插件时需要包含的资源,在Binary Build的时候勾上需要的资源吧,记得在开始的时候老是忘记lib包,导致编译错误或使用就报错
MANIFEST.MF和build.properties
这里其实对前几个tab页中内容自动生成,比如包含Require-Bundle、Bundle-ClassPath、Export-Package等
plugin.xml
这部分内容是比较重要的,比如描述了各种actionSets,extension point
<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>
<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>