原plugin.xml文件各个设置项的说明:
附上生成的文件代码:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <?eclipse version="3.4"?> 3 <plugin> 4 <extension 5 point="org.eclipse.ui.actionSets"> 6 <actionSet 7 label="Sample Action Set" 8 visible="true" 9 id="myplugin.actionSet"> 10 <menu 11 label="Sample &Menu" 12 id="sampleMenu"> 13 <separator 14 name="sampleGroup"> 15 </separator> 16 </menu> 17 <action 18 label="&Sample Action" 19 icon="icons/sample.gif" 20 class="myplugin.actions.SampleAction" 21 tooltip="Hello, Eclipse world" 22 menubarPath="sampleMenu/sampleGroup" 23 toolbarPath="sampleGroup" 24 id="myplugin.actions.SampleAction"> 25 </action> 26 </actionSet> 27 </extension> 28 </plugin>
详细介绍其中的各项设置如下:
>>>>>>>>>>>>>>↓↓↓↓↓↓↓↓<<Eclipse从入门到精通(第一版)-----旧知识.....>>>>↓↓↓↓↓↓↓↓<<<<<<<<<<<<<<<<<<<<<
(1)<plugin>项
<plugin
id="myplugin2"
name="Myplugin2 插件"
version="1.0.0"
privider-name=""
class="myplugin2.Myplugin2Plugin">
<plugin>是plugin.xml的主体.
id:插件的唯一标识.实际项目中一般加上包名或者网址来命名id .例如:eclipse的tomcat插件是这样命名的:org.eclipse.tomcat,这样
在世界上就不会有插件的标识名和你重名了.以后在某些扩展点中的属性也会用到标识符做为名称的前缀.
name:插件的名称,可以不唯一.
version:插件版本号.
provider-name:插件开发商的名称.可以写上作者姓名或者公司名称.
class:插件类的名称.即插件项目自动生成的MypluginPlugin2.java文件的类.前面加上包名.
(2)<runtime>项
<runtime>
<library name="myplugin2.jar">
<export name=""/>
</library>
</runtime>
说明这里是声明插件运行时需要的jar包.例如:插件要连接MySQL数据库时需要它的一个包.
则定义如下,其中"lib\"是该包所在路径.本插件自身的jar包也要声明.而且本插件在打包时,
将以myplugin2.jar为名打包.
<runtime>
<library name="myplugin2.jar">
<export name=""/>
</library>
<library name = "lib\mysql-connector-java-3.0.9-stable-bin.jar">
</runtime>
(3)<requires>项
<requires>
<import plugin="org.eclipse.ui">
<import plugin="org.eclipse.core.runtime"/>
</requires>
说明:在requires域中定义了该插件所要使用的依赖插件,现在有两项就够了.随着开发的不断深入.这里将会添加更多对其他插件的引用.
>>>>>>>>>>>>>>↑↑↑↑↑↑↑↑↑↑<<Eclipse从入门到精通(第一版)-----旧知识.....>>>>↑↑↑↑↑↑↑↑↑<<<<<<<<<<<<<<<<<<<<<
<extension>项设置要扩展的扩展点,它是非常重要的一项.
<extension point="org.eclipse.ui.actionSets">设置了本插件的扩展点,actionSets是指Eclipse的菜单,菜单项和工具栏按钮的扩展点.
<actionSet>项表示 一个action组(菜单,按钮).label是显示的名称,id其唯一的标识符.
只要保证在本plugin.xml文件中不存在重复的id就行了.visible指设置的按钮或菜单是否显示.如果设置成false,则不显示.(注意:看visible设置的效果,要先将"透视图"关掉再重新打开)
<menu>是<actionSet>下的子项,它表示在Eclipse中插入显示一个名为"样本菜单(M)"的主菜单.
separator标签是一个结束符,它可以对菜单分组.
<action>也是<actionSet>下的子项,由它设置菜单,按钮,icon是图片的路径.
如包名上也要加上,menubarPath表示这个action做成一个菜单项.放在上面<menu>定义的主菜单下,
toolbarPath表示把这个action再做成一个工具栏按钮.id是标识符,建议设置成和class项一样的名称.
以上仅仅是Eclispe的扩展点中的一种.此外还有其他的扩展点共有一百多种之多.我们只需要熟悉一些常用的就可以了.
如视图的扩展点org.eclipse.ui.views 编辑器的扩展点org.eclipse.ui.editors等.
为HelloWorld修改plugin.xml
MANIFEST.MF文件位于META-INF目录下.
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Myplugin3 Bundle-SymbolicName: myplugin3;singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-Activator: myplugin3.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.core.resources Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy
各项配置说明如下:
Manifest-version:Manifest版本号.
Bundle-ManifestVersion:插件的Manifest版本号.
Bundle-Name:插件的名称,不用保证唯一性.
Bundle-SymbolicName:插件的唯一标识,以后再某些扩展点的属性中也会用到该值做前缀.
实际项目中一般加上包名或者网址名来命名SymbolicName,例如Tomcat插件命名为org.eclipse.tomcat.这样能保证世界上不会有和自己重名的.
Bundle-Version:插件版本号.
Bundle-Activator:定位Activator类.要用类全名(包名+类名).
Bundle-Localization:用于设置plugin.xml的国际化
Require-Bundle:定义了本插件所依赖的其他插件.当前只有两项依赖,随着开发的深入将会不断的添加依赖插件进来.比如,以后要用的Draw2D来画图,则要添加插件org.eclipse.draw2d.
Eclipse-LazyStart:插件是否懒加载
Bundle-Vendor:插件开发商的名称,可以写上作者姓名或者公司名称,这里没用上
Bundle-ClassPath:定义了插件所依赖的JAR包,例如插件要连接MySQL就需要依赖JDBC连接包.Bundle-ClassPath相当于项目库引用的作用.插件就靠这项设置来找到自己依赖的JAR包.其设置方式和Require-Bundle相似.也也是用逗号隔开各项,本插件还很简单,不需要依赖其他JAR包.所以这一项也没有用上.
MANIFEST.MF中的大部分设置,对于Eclipse老版本都是在plugin.xml文件里设置的,如果要升级以前的老插件,可能需要一个对照表.如下图:
build.properties文件
此文件定义了一些在编译插件打包插件时说需要的信息.其中bin.includes用来设置要包含到编译输出中的资源文件或者目录.
其内容如下:
source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ plugin.xml
最重要的就是plugin.xml文件的设置.掌握它是掌握插件开发的必经之路.
按照图示做好修改之后,在GUI上的修改最终会反应到MANIFEST.MF文件上.如下:
Bundle-SymbolicName是插件的唯一标识符,它改变了,那么Activator类的PLUGIN_ID变量也应该相应的改变值为cn.com.kxh.myplugini.
如果仅仅按照上面的修改的话会报错,Plug-ins declaring extensions or extension points must set the singleton directive to true
所以在后边又加上:Bundle-SymbolicName: cn.com.kxh.myplugin;singleton:=true就可以了.
再次运行插件,选择主菜单,"帮助--->关于Eclipse----> 见下图"
可以看到在Eclipse中已经可以看到myplugin插件的信息.
对插件等的配置: