現在在Internet上已經可以見到不少的Eclipse外掛程式開發的入門文章,這裡我寫本文的目的主要是將我自己的體會和最開始的學習告訴給大家。 同時也希望本文能使用最為簡單的方法來讓大家瞭解開發Eclipse外掛程式的基礎。需要注意的是,要學習Eclipse的外掛程式開發,你需要:
會使用Eclipse來開發Java應用程式
瞭解外掛程式這個詞的概念
瞭解一些XML的知識 本文是一個入門的文章,只是向大家說明開發一個外掛程式的簡單步驟,同時瞭解在開發外掛程式時涉及到的技術面會有哪些。
Eclipse SDK概述
我們通常使用的Eclipse也就是我們這裡所說的Eclipse SDK,這個SDK中包括了很多的內容,如所示:
運行時核心(Eclipse Platform) - SDK必須一個Eclipse Platform,它自身不具有任何對終端使用者有意義的功能, 它是一個載入所有外掛程式的基礎平台。也就是Eclipse的運行時最小集合了。
Java 開發工具(JDT) - 我們所有的有關Java的開發部分都是由這個外掛程式來完成了,它形成了對於Java最為基礎的編輯、 編譯、運行、調試、發布的環境。
外掛程式開發人員環境(PDE) - 開發外掛程式的外掛程式,我們如果要開發外掛程式哪麼我們就會發現所有的工作環境都是由它來提供的。 它提供了用來自動建立、處理、調試和部署外掛程式的工具。
我們將來要開發的外掛程式都是由平台來載入和運行,而PDE則是開發外掛程式的開發環境,JDT則是開發外掛程式時的Java代碼的開發環境。
建立外掛程式項目
設定引用項目
開發外掛程式時需要大量的外部庫,這些外部庫主要是現有的Eclipse中各個外掛程式所提供的庫。 為了開發方便,我們先將這些外部庫由一個項目統一引用。
從資源透視圖中,使用檔案>匯入...>外部外掛程式和段。
在下一步中選擇抽取源歸檔並在項目中建立源檔案夾。
到顯示稱為選擇的螢幕,選擇 org.eclipse.ui,然後單擊完成按鈕。
建立項目
在Eclipse需要建立一個空的外掛程式項目,為了讓我們更好的理解外掛程式中各個檔案的來源,我們從一個空白的外掛程式項目開始:
1) 開啟建立項目...嚮導(檔案>建立>項目...)並從外掛程式開發類別中選擇外掛程式項目。
2) 將com.huangdong.examples.helloworld用作項目的名稱。預設情況下,嚮導還會將com.huangdong.examples.helloworld設定為標識。
3) 最終,確保在外掛程式代碼產生器頁面上選擇了建立空白外掛程式項目。
4) 當詢問您是否想切換到“外掛程式開發”透視圖時,回答是。
5) 選擇com.huangdong.examples.helloWorld項目並開啟屬性對話方塊。
6) 在Java構建路徑屬性中,選擇項目選項卡,並選擇項目org.eclipse.ui。這些包含了項目需要的匯入類。
7) 重建項目。
建立一個外掛程式內容
建立一個新的小視圖
下面我們為該項目加入一個很簡單的視圖:
1) 在項目的src目錄下建立包com.huangdong.examples.helloworld。
2) 在此包中建立稱為HelloWorldView的新類其超類為org.eclipse.ui.part.ViewPart。
在HelloWorldView中加入以下代碼:
package com.huangdong.examples.helloworld;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.part.ViewPart;
public class HelloWorldView extends ViewPart {
Label label;
public void createPartControl(Composite parent) {
label = new Label(parent, SWT.WRAP);
label.setText("Hello World");
}
public void setFocus() {}
}
我們為該類定義了一個變數lable,在createPartControl方法中初始化並設定了一個顯示的字串。
護展擴充點
讓Eclipse添加這個視圖,需要擴充org.eclipse.ui.views擴充點。所有的這些需要在plugin.xml中進行描述。該資訊清單檔描述外掛程式,包括外掛程式的代碼所在的位置以及正在添加的擴充。
將以下內容複寫到plugin.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<plugin id="com.huangdong.examples.helloworld"
name="com.huangdong.examples.helloworld"
version="1.0.0"
provider-name="HuangDong">
<runtime>
<library name="helloworld.jar"/>
</runtime>
<requires>
<import plugin="org.eclipse.ui"/>
</requires>
<extension point="org.eclipse.ui.views">
<category
name="Hello"
id="com.huangdong.examples.helloworld.hello">
</category>
<view
name="Hello Greetings"
category="com.huangdong.examples.helloworld.hello"
class="com.huangdong.examples.helloworld.HelloWorldView"
id="com.huangdong.examples.helloworld.helloworldview">
</view>
</extension>
</plugin>
在plugin域中定義了外掛程式的名稱、標識和版本。 同時在runtime域中定義了外掛程式代碼將打包於helloworld.jar檔案中。 在requires域中定義了該外掛程式所要使用的依賴外掛程式,由於我們要使用SWT API和工作台所以列示了org.eclipse.ui。 最後,在extension中說明了要們要擴充org.eclipse.ui.views擴充點。 首先我們在category中定義了視圖的類別,在工作台的顯示視圖對話方塊中,可以使用類別來將相關的視圖集中在一起。我們定義的類別名為“Hello”。 同時也定義了我們的視圖,名為“Hello Greetings”,這個視圖將會顯示在“顯示視圖”對話方塊和視圖的標題列中,這裡我們還通過class標識來說明了實現這個視圖的最終類。
通過plugin.xml的定義,Eclipse才會真正的找到外掛程式可以做的行為,以及這些行為最終實現的具體Java類。
在外掛程式資訊清單檔中使用了許多標識。 個別擴充點通常會定義需要標識的配置參數(例如,以上用於視圖擴充點的類別標識)。 我們還要定義外掛程式標識。通常,應該對所有標識都使用 Java 包名首碼,以便確保所有已安裝的外掛程式都是唯一的。
在首碼後面使用的特定名稱完全由您自己決定。 然而,如果外掛程式標識首碼剛好與其中一個包的名稱相同,則應該避免在該包中使用類名。 否則,將很難分辨您正在查看標識名還是類名。
還應該避免對不同的擴充配置參數使用相同的標識。 在上述清單中,已經使用了公用標識首碼(com.huangdong.examples.helloworld),但是,我們的所有標識都是唯一的。 此命名方法可以協助我們閱讀檔案並瞭解哪些標識是相關的。
運行和測試外掛程式
運行外掛程式是一件很簡單的事,這些在PDE中給我們提供了很好的支援。 只需要在菜單中選擇運行>運行為>運行時工作台,在運行時會彈出一個重複外掛程式的提示框,可以按確定跳過,不必在意。 這樣會啟動一個已經安裝好外掛程式的Eclipse。
啟動後在菜單中選擇視窗>顯示視圖>其它,在顯示視圖對話方塊中會有一個分類為Hello,點開Hello分類會看到Hello Greetings,選擇後點確定按鈕。在最下面的視圖中可以見到以下介面:
到這裡,如果你看到了這個圖,哪麼恭喜你,你的第一個Eclipse外掛程式成功運行了。