原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插件的信息.
對插件等的配置: