管理插件
什麼是插件?為什麼我需要關心插件?
插件(plug-in,也稱為 bundle)是 Eclipse 的功能塊。在 Eclipse 中,所有的一切都有其相應的插件,這包括:
透視圖和視圖
編輯器
建模工具
登錄和其他核心功能
事實上,整個 Eclipse IDE 就是被構建為一個大的插件集合。其他基於 Eclipse 的產品,例如 IBM Rational® Software Architect,通過添加新插件增強了基本的 Eclipse。
一組相關的插件組成特性。特性和它們的插件存在於 Eclipse 程序目錄中(在這個例子中,Eclipse 被安裝在 /opt/eclipse 目錄中)。下面是目錄布局的一個示例:
清單 1. Eclipse 特性和插件目錄結構
/opt/eclipse/
features/
org.eclipse.jdt_3.1.1/
feature.xml
...
plugins/
org.eclipse.jdt.ui_3.1.1.jar
...
Eclipse 可以有許多相同的插件,針對每個不同的版本有一個這樣的插件。它知道如何解決插件依賴性、避免版本沖突,因此您永遠不必擔心同時安裝兩個 Subclipse 插件。
在長期使用 Eclipse 的過程中,您總是會通過下載第三方插件或是創建您自己的插件來增加新的功能。跨不同的 Eclipse 版本管理這些插件可能是個麻煩。因為插件存在於 Eclipse 程序目錄中,所以如果您安裝 Eclipse 的新版本,它們就會丟失。這意味著如果您有多個 Eclipse 安裝,就必須保存大量插件的多個副本;甚至,在每次想要升級 Eclipse 時,您只能很麻煩地全部重新安裝。
如果將插件存儲於 Eclipse 程序目錄以外的獨立位置,當升級到 Eclipse 的新版本時,就不需要重新安裝它們,而且,可以跨多個 Eclipse 版本共享插件。
實施控制:方法 1 —— 手動的文件系統擴展
有三種方法對插件實施控制。第一種方法是手動創建一個可以保存插件的目錄(稱之為產品擴展),將插件移到該目錄,然後告訴 Eclipse 在這裡尋找特性和插件。
在我們的例子中,我們會創建一個名為 /opt/eclipse-plugins 的位置用來存儲插件。為了讓 Eclipse 在這裡存儲插件,您必須首先創建如下的目錄結構和文件:
清單 2. Eclipse 產品擴展目錄結構
/opt/eclipse-plugins/
eclipse/
.eclipseextension
features/
plugins/
注意,除了創建這些目錄以外,您還必須在 eclipse 目錄(在我們的例子中,是指 /opt/eclipse-plugins/eclipse)中創建一個名為 .eclipseextension 的文件。這個文件讓 Eclipse 知道在這裡可以找到擴展。它應該有如下內容:
id=org.eclipse.platform name=Eclipse Platform
version=3.1.1
.eclipseextension 文件中的 version 屬性應該設置為使用這個產品擴展的 Eclipse 的版本。該屬性可以是特定的(3.1.1)、比較一般的(3.0.0)或者非常一般的(1.0.0)。在撰寫本文時,版本號似乎對產品擴展的功能並沒有任何影響。
注意,如果您使用的是 Windows®,則無法通過 Explorer shell 創建 .eclipseextension 文件。通過打開 NotePad,輸入文件的內容,並將其保存為 .eclipseextension(確保文件類型選中為 “所有文件”,否則 Notepad 將會在文件名後添加 .txt),可以創建這樣的文件。
下一件事是將這個插件位置告訴 Eclipse,以便它知道以後在這裡尋找插件。選擇 Help > Software Updates > Manager Configuration 得到 Product Configuration Manager,在這裡完成這項工作。
使用 Product Configuration Manager,您可以添加新的 Eclipse 擴展。為了啟用上面創建的擴展(/opt/eclipse-plugins),我們需要將它作為一個擴展位置添加。每一個人都已經有一個擴展位置,那就是 Eclipse 安裝中的插件文件夾。在 Eclipse Platform 上右擊,選擇 Add > Extension Location 就可以添加另一個擴展。
圖 1. 添加擴展位置
一旦您已經選中了插件所在的目錄,插件就會顯示在產品擴展的列表中。在這裡,您可以檢驗插件是否已找到。
圖 2. 查看一個擴展位置中的插件
Product Configuration 屏幕好的方面是,您可以很容易地禁用整個插件位置 —— 這在進行插件開發和測試不同配置時很有用。
實施控制:方法 2 —— 通過 Configuration Manager 添加產品擴展
不必在文件系統中創建文件夾和 .eclipseextension 文件,您可以讓 Eclipse 為您創建產品擴展。
您可以在 Update Manager(Help > Software Updates > Find and Install)中創建新的產品擴展。在安裝新的插件時,Eclipse 最終會提示您所要安裝的位置。在這裡,您可以單擊 Change Location 以選擇一個產品擴展。
圖 3. 選擇插件的安裝位置
選擇 Add Location。當您選定一個目錄時,Eclipse 將在那裡為您創建一個產品擴展。
圖 4. 通過 Update Manager 創建一個新的產品擴展
當您以後安裝插件時,確保它們是被安裝到您所想要的插件擴展地點(參見圖 3 中的 Install Location 區域)
實施控制:方法 3 —— 創建管理產品擴展的 links 文件夾
如果在您的文件系統中已經有了產品擴展,例如我們在 方法 1 中創建的那個,那麼您可以在 Eclipse 程序目錄中創建一些簡單的文件,告知 Eclipse 需要檢查這些目錄以尋找插件。
首先,在 Eclipse 安裝文件夾(例如 /opt/eclipse)中創建一個名為 links 的目錄。在這個目錄中,您可以創建 *.link 文件(例如 emfPlugins.link)。每一個鏈接文件指向一個產品擴展位置。Eclipse 會在啟動時掃描這個 links 文件夾,並在每個鏈接文件中所指向的產品擴展中尋找插件。下面是一個使用 links 文件夾的 Eclipse 安裝布局的例子:
清單 3. 使用 links 文件夾的 Eclipse 安裝布局
/opt/eclipse/
links/
emfPlugins.link
webtools.link
updateManager.link
...
...
鏈接文件的內容看上去應該像下面這樣:
path=/opt/plugins/emf/
Windows
在本文中,我們著重介紹 Eclipse 的 Linux® 安裝。所有提供的示例清單對於 Windows 都是有效的。您僅僅需要將路徑替換為相應的 windows 路徑。另外請注意,在 Windows 中,路徑中需要使用雙反斜槓(例如 path=c:\\plugins\\emf)。
/opt/plugins/emf/ 有一個 Eclipse 產品擴展的目錄結構,如 清單 1 所示。
這個方法的優勢在於,所有的插件位置被作為一個文件夾中的文本文件來存儲。這意味著您可以通過簡單地將 links 文件夾復制到新的 Eclipse 安裝中,來升級 Eclipse 並使其指向您的產品擴展文件夾。您也可以通過從每個 Eclipse 安裝建立一個到 links 文件夾的符號鏈接,獲得一個針對所有 Eclipse 安裝的公用 links 文件夾(如果您的文件系統支持符號鏈接)。
管理 Eclipse 工作區
在 Eclipse 中,工作區的概念被簡單地描述成可以通過插件訪問的資源的容器。工作區是終端用戶和 Eclipse 平台之間交互的樞紐。終端用戶能夠在工作區中創建項目並處理其中的內容。工作區本身作為一個目錄存在於文件系統中,並且只局限於每個 Eclipse 實例使用一個。工作區還包含一個 .metadata 目錄,用來持久存儲諸如插件狀態這樣的私有信息。
為什麼我需要多個 Eclipse 工作區?
簡單的答案是為了性能。工作區中的項目越多,達到開發系統所能處理項目的臨界點的機會就越大。為了解決這個問題,您可以通過 -data 參數劃分 Eclipse 工作區,這個參數被傳遞給 Eclipse 可執行文件(例如 /opt/eclipse/eclipse):
清單 4. 指定不同的工作區
/opt/eclipse-3.1/eclipse -data /opt/workspaces/web
/opt/eclipse-3.2M2/eclipse -data /opt/workspaces/web
/opt/eclipse-3.2M2/eclipse -data /opt/workspaces/dev -vmargs -Xmx512m
工作區提示
您可以通過向 Eclipse 可執行文件傳遞 -showlocation 參數來顯示工作區位置。此外,您還可以通過 -vmargs -Xms 和 Xmx 參數為不同的工作區指定不同的性能特征。
您也可以通過從 Eclipse 中選擇 File > Switch Workspace 切換工作區,而不必重新啟動 Eclipse。
還有一種可能的情況是,您有一個 “研究” 工作區。在這個工作區中,您需要使用 Open Type(Ctrl+Shift+T)等由 Eclipse 對載入的大代碼庫的代碼仔細搜尋一遍。如果您試圖學習一些例子,或者您曾經想知道一個開放源碼項目是如何處理特定問題的,那麼這種方法是極其有用的。
有多個工作區的不利方面在於需要在它們之間共享開發首選項。因為首選項被持久存儲在 Eclipse 中的一個工作區中,所以您必須導出工作區的首選項並將它們導入您所要求的工作區中(File > Export > Preferences)。
管理 Eclipse 安裝
為什麼我需要多個 Eclipse 安裝?
如果您使用多個基於 Eclipse 的產品,就必然需要多個 Eclipse 安裝。例如,如果您使用基本的 Eclipse V3.1 來完成日常的 Java™ 語言編程,並使用帶有 WebTool 的 Eclipse 來編寫 IBM WebSphere® 應用程序,那麼您就有兩個完全獨立的 Eclipse 安裝。在這些基於 Eclipse 的產品之間共享插件和工作區可以節約時間,並避免一些升級帶來的麻煩。
您在開發 Eclipse 的插件時也需要多個 Eclipse 安裝。當有了多個 Eclipse 安裝時,您可以跨不同的 Eclipse 版本測試您的插件的功能。您也可以將一組不同的插件對應不同的 Eclipse 安裝,以便跨多個環境配置測試您的插件。
注意,通過在 Eclipse 中選擇 Help > Software Updates > Manage Configuration,來考察 Eclipse IDE(它啟用和禁用屬於這些特性的插件)中的特性,可以管理哪些插件由 Eclipse 使用。在開發自己的插件時,您也可以通過 Run Configuration Manager 來管理運行 Eclipse 測試實例時哪些插件被啟用。我們通常的經驗是,使用多個 Eclipse 安裝是管理多個 Eclipse 版本和配置最方便且最便於重用的方法,對於測試目的尤其如此。
多個 Eclipse 安裝
Eclipse 安裝獨立存在於它們自己的文件夾中。要使得多個安裝並存,只要下載您所要的 Eclipse 產品和版本並將其解壓到它們自己的目錄中即可。下面是一個用來跨不同 Eclipse 版本測試插件的示例布局:
/opt/eclipse-3.0
/opt/eclipse-3.1
/opt/eclipse-3.2-m1
對於節約所有當前安裝的插件安裝時間和避免工作區重復,盡可能地跨 Eclipse 安裝進行共享是一個好主意。正如我們前面所講述的,您可以共享以下內容:
插件 —— 有一個(或多個)供所有安裝共同使用的公用的插件文件夾。最好的方法是按照 實施控制:方法 3 中所講述的那樣創建一個 links 文件夾。
工作區 —— 參見 管理 Eclipse 工作區
工作區首選項 —— 與工作區綁定的首選項。從 Eclipse 中選擇 File > Export > Preferences。
注意,跨 Eclipse 安裝共享工作區和首選項可能會有問題,尤其是當 Eclipse 版本的主編號不同時(例如 3.1 和 3.2)。
結束語
我們的目的有兩個:初步介紹 Eclipse 的基本工作要素,比如插件、項目和工作區;告訴您管理多個 Eclipse 環境的好處以及一些不利方面。我們希望您能夠接受這些知識並將其應用到您的實踐中以節約 Eclipse 維護的時間。