關於Eclipse中開發插件(二)


原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 &amp;Menu"
12                id="sampleMenu">
13             <separator 14                   name="sampleGroup">
15             </separator>
16          </menu>
17          <action 18                label="&amp;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插件的信息.

對插件等的配置:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM