|
Eclipse 是什么? Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java IDE 來使用,但 Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。 這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C++、COBOL 和 Eiffel 等編程語言的插件已經(jīng)可用,或預(yù)計會推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。 基于 Eclipse 的應(yīng)用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎(chǔ)。例如,WebSphere Studio Application Developer 添加了對 JSP、servlet、EJB、XML、Web 服務(wù)和數(shù)據(jù)庫訪問的支持。 Eclipse 是開放源代碼的軟件 曾經(jīng)四處蔓延的對開放源代碼軟件的許多恐懼、擔(dān)憂和疑慮,都與某些 copyleft 許可證的所謂“病毒”性質(zhì)有關(guān)——如果使用開放源代碼軟件作為您開發(fā)的程序的一部分,您將失去自己的知識產(chǎn)權(quán),因為該許可證將“傳染”您開發(fā)的專有部分。換句話說,該許可證可能要求與開放源代碼軟件一起打包的所有軟件,都必須在相同的許可證之下發(fā)布。雖然這對最著名的 copyleft 許可證(即 GNU 通用公共許可證,例如 Linux 就是在該許可證之下發(fā)布的)來說可能是事實,當(dāng)時還有其他許可證在商業(yè)化和社區(qū)考慮之間提供了較好的平衡。 開放源代碼計劃(Open Software Initiative)是一家非營利機構(gòu),它明確定義了開放源代碼的含義及滿足其標(biāo)準(zhǔn)的認(rèn)證許可證。Eclipse 是在 OSI 認(rèn)可的通用公共許可證(CPL)1.0 版之下被授予許可證的,CPL“旨在促進程序的商業(yè)化使用……”(欲獲得指向通用公共許可證 1.0 版完整文本的鏈接,請參閱本文稍后的 參考資料)。 為 Eclipse 創(chuàng)建插件或?qū)?Eclipse 用作軟件開發(fā)應(yīng)用程序基礎(chǔ)的開發(fā)人員,需要發(fā)布他們在 CPL 下使用或修改的任何 Eclipse 代碼,但是他們可以自由決定自己添加的代碼的許可證授予方式。與出自 Eclipse 的軟件一起打包的專有代碼不需要作為開放源代碼來授予許可證,該源代碼也不需要提供給用戶。 盡管大多數(shù)開發(fā)人員不會使用 Eclipse 來開發(fā)插件,或創(chuàng)建基于 Eclipse 的新產(chǎn)品,但是 Eclipse 的開放源代碼性質(zhì)所意味的,并不只是它使得 Eclipse 免費可用(盡管便于商業(yè)化的許可證意味著插件可能要花錢)。開放源代碼鼓勵創(chuàng)新,并激勵開發(fā)人員(甚至是商業(yè)開發(fā)人員)為公共開放源代碼庫貢獻代碼。對此存在許多原因,不過最本質(zhì)的原因或許是為這個項目作貢獻的開發(fā)人員越多,這個項目就會變得對每個人都越寶貴。隨著這個項目變得更加有用,更多的開發(fā)人員將會使用它,并圍繞它形成一個社區(qū),就像那些圍繞 Apache 和 Linux 形成的社區(qū)一樣。 Eclipse 是什么機構(gòu)? 在最高層,項目管理委員會(Project Management Committee,PMC)管理著 Eclipse 項目。這個項目被劃分為多個子項目,每個子項目都有一名負(fù)責(zé)人。大型子項目又被劃分為組,每個組也有一名負(fù)責(zé)人。目前,這其中的大多數(shù)管理角色都由最初開發(fā) Eclipse 的 IBM 子公司 Object Technology International (OTI)的人擔(dān)任,但是作為一個開放源代碼的項目,它歡迎任何人的參與。任何特定部門的職責(zé)是通過該部門對項目的貢獻來爭取的。 現(xiàn)在我們已經(jīng)考察了 Eclipse 背后的一些理論、歷史和管理,下面讓我們考察該產(chǎn)品本身。 Eclipse 工作臺 Eclipse 工作臺由幾個稱為 視圖(view)的窗格組成,比如左上角的 Navigator 視圖。窗格的集合稱為 透視圖(perspective)。默認(rèn)的透視圖是 Resource 透視圖,它是一個基本的通用視圖集,用于管理項目以及查看和編輯項目中的文件。 Navigator 視圖允許您創(chuàng)建、選擇和刪除項目。Navigator 右側(cè)的窗格是 編輯器區(qū)域。取決于 Navigator 中選定的文檔類型,一個適當(dāng)?shù)木庉嬈鞔翱趯⒃谶@里打開。如果 Eclipse 沒有注冊用于某特定文檔類型(例如,Windows 系統(tǒng)上的 Navigator 下面的 Outline 視圖在編輯器中顯示文檔的大綱;這個大綱的準(zhǔn)確性取決于編輯器和文檔的類型;對于 Java 源文件,該大綱將顯示所有已聲明的類、屬性和方法。 Tasks 視圖收集關(guān)于您正在操作的項目的信息;這可以是 Eclipse 生成的信息,比如編譯錯誤,也可以是您手動添加的任務(wù)。 該工作臺的大多數(shù)其他特性,比如菜單和工具欄,都應(yīng)該和其他那些熟悉的應(yīng)用程序類似。一個便利的特性就是不同透視圖的快捷方式工具欄,它顯示在屏幕的左端;這些特性隨上下文和歷史的不同而有顯著差別。Eclipse 還附帶了一個健壯的幫助系統(tǒng),其中包括 Eclipse 工作臺以及所包括的插件(比如 Java 開發(fā)工具)的用戶指南。至少瀏覽一遍這個幫助系統(tǒng)是值得的,這樣可以看到有哪些可用的選項,同時也可更好地理解 Eclipse 的工作流程。 為繼續(xù)這個短暫的 Eclipse 之旅,我們將在 Navigator 中創(chuàng)建一個項目。右鍵單擊 Navigator 視圖,然后選擇 New=>Project。當(dāng) New Project 對話框出現(xiàn)時,選擇左面的 Java。標(biāo)準(zhǔn) Eclipse 只有一種 Java 項目類型,名為“Java Project”。如果安裝了插件來提供 JSP 和 servlet 支持,我們會從這里看到一個用于 Web 應(yīng)用程序的附加選項。眼下,請選擇 Java Project,在提示項目名稱時輸入“Hello”,然后按 Finish。 接下來,我們將檢查一下 Java 透視圖。取決于您喜歡的屏幕管理方式,您可以通過選擇 Window=>Open Perspective=>Java來改變當(dāng)前窗口中的透視圖,也可以通過選擇 Window=>New Window,然后再選擇這個新的透視圖,從而打開一個新的窗口。 正如您可能預(yù)期的那樣,Java 透視圖包含一組更適合于 Java 開發(fā)的視圖。其中之一就是左上角的視圖,它是一個包含各種 Java 包、類、jar 和其他文件的層次結(jié)構(gòu)。這個視圖稱為 Package Explorer。還要注意主菜單已經(jīng)展開了——并且出現(xiàn)了兩個新的菜單項:Source 和 Refactor。 Java 開發(fā)環(huán)境(JDE) 這樣將在編輯器區(qū)域創(chuàng)建一個包含 您會在鍵入時注意到 Eclipse 編輯器的一些特性,包括語法檢查和代碼自動完成。在 2.1 版(我曾下載 M2 版來試用過)中,當(dāng)您鍵入開括號或雙引號時,Eclipse 會自動提供配對的符號,并將光標(biāo)置于符號對之內(nèi)。 在其他情況下,您可以通過按 Ctrl-Space 來調(diào)用代碼自動完成功能。代碼自動完成提供了上下文敏感的建議列表,您可通過鍵盤或鼠標(biāo)來從列表中選擇。這些建議可以是針對某個特定對象的方法列表,也可以是基于不同的關(guān)鍵字(比如 語法檢查依賴增量編譯。每當(dāng)您保存代碼,它就在后臺接受編譯和語法檢查。默認(rèn)情況下,語法錯誤將以紅色下劃線顯示,一個帶白 “X” 的紅點將出現(xiàn)在左邊沿。其他錯誤在編輯器的左邊沿通過燈泡狀的圖標(biāo)來指示;這些就是編輯器或許能為您修復(fù)的問題——即所謂的Quick Fix(快速修復(fù))特性。 上面的代碼例子在 雙擊該建議就會把建議代碼插入到代碼中的恰當(dāng)位置。 一旦代碼無錯誤地編譯完成,您就能夠從 Eclipse 菜單上選擇 Run 來執(zhí)行該程序(注意這里不存在單獨的編譯步驟,因為編譯是在您保存代碼時進行的。如果代碼沒有語法錯誤,它就可以運行了)。這時會出現(xiàn)一個具有適當(dāng)默認(rèn)設(shè)置的 Launch Configurations 對話框;請按右上角的 Run 按鈕。一個新的選項卡式窗格將出現(xiàn)在下面的窗格(控制臺)中,其中顯示了程序的輸出,如圖 5 所示。 也可以在 Java 調(diào)試器中運行程序。首先雙擊編輯器視圖左端的灰色邊沿,從而在調(diào)用 首先,請注意該透視圖左上角的 Debug 視圖。這個視圖顯示調(diào)用堆棧,并且標(biāo)題欄中有一個工具欄,它允許您控制程序的執(zhí)行,包括繼續(xù)、掛起或終止程序、跟蹤下一個語句、單步執(zhí)行下一個語句,或者從方法返回。 右上角的窗格包含許多選項卡式的視圖,包括 Variables、Breakpoints、Expressions 和 Display。這里我單擊了 Variables 視圖,以便我們能夠看到 可以通過上下文敏感的幫助,獲得關(guān)于這些視圖的更多信息:單擊視圖的標(biāo)題,然后按 F1。 附加插件 Eclipse 標(biāo)準(zhǔn)地附帶了配合 CVS 使用的插件,CVS 是用于源代碼控制的開放源代碼并發(fā)版本系統(tǒng)(Concurrent Versions System)。Team 插件連接到 CVS 服務(wù)器,允許開發(fā)團隊的成員操作一組源代碼文件,卻不會相互覆蓋其他人的更改。這里不打算進一步探討如何從 Eclipse 內(nèi)部進行源代碼控制,因為這需要安裝 CVS 服務(wù)器,不過支持開發(fā)團隊而不只是獨立的開發(fā),這是 Eclipse 的一個重要的必備特性。 已經(jīng)可用或已宣布要推出的一些第三方插件包括: 版本控制和配置管理
UML 建模
圖形
Web 開發(fā)、HTML、XML
應(yīng)用服務(wù)器集成
欲了解可用插件的更完整列表,請參閱 參考資料中的鏈接。 例子:一個用于 UML 建模的插件 下載之后,插件的安裝通常是通過解壓縮下載文件,并將其內(nèi)容復(fù)制到 Eclipse 插件目錄來完成的。在此例中,GEF 需要解壓縮到 Eclipse目錄(它將自動從該目錄進入插件目錄)。為安全起見,您可能想將它解壓縮到某個臨時目錄,再相應(yīng)地從那里復(fù)制相關(guān)目錄。如果 Eclipse 正在運行,您需要停止它然后再重新啟動它,這樣它才能識別新安裝的插件。 一旦 EclipseUML(以及 GEF)安裝完成,您就能夠像創(chuàng)建一個 Java 類文件一樣創(chuàng)建一個類圖。在 Java 透視圖中,右鍵單擊 Package Explorer 中的“Hello”項目,然后從彈出菜單上選擇 New=>Other。New 對話框的左邊窗格中將會有一個用于 UML 的新選項。EclipseUML 的免費版本僅支持類圖,因此右側(cè)的惟一選項是 UML Class Diagram。請選擇 UML Class Diagram,然后為該類圖鍵入一個名稱,比如“Hello”: 編輯器區(qū)域中將會出現(xiàn)一個圖形編輯器,它帶有用于繪制類圖的畫布。您可以通過兩種方式創(chuàng)建類圖:通過將 Java 文件從 Package Explorer 拖放到類圖上,從而對現(xiàn)有代碼進行逆向工程;或者使用空白類圖上面工具欄中可用的繪制工具。要試驗第一種方法,請創(chuàng)建一個名為 Person 的新類(使用 File=>New=>Class),然后賦予它下面列出的兩個私有屬性:
(應(yīng)該承認(rèn),我僅鍵入了針對 name 和 address 的行。getter 和 setter 方法是通過 Eclipse 自動生成的,即右鍵單擊源代碼,然后從彈出菜單上選擇 Source=>Generate Getter and Setter。) 請保存并關(guān)閉 要從 UML 創(chuàng)建 Java 類,請單擊類圖窗口頂部工具欄上的“New class”按鈕,即左起第三個按鈕,然后單擊類圖。當(dāng) New 類向?qū)Т蜷_時,請鍵入 Adress 作為類名稱,然后按 Finish。 您可以右鍵單擊類名稱并選擇 New=>Attribute,從而給類添加屬性。在 New 屬性對話框中,請輸入屬性名稱、類型和可見性。然后右鍵單擊類名稱并選擇 New=>Method來添加方法。 當(dāng)您更改類圖時,圖下面的 Source Editor 窗口將反映所做的更改。最后,您可以單擊 Association 按鈕(左起第五個),繪制一條從 Person 類指向 Address 類的線段,從而繪制這兩個類之間的關(guān)系圖。這樣會調(diào)出另外一個對話框,您可以在其中輸入關(guān)聯(lián)屬性(請參考 EclipseUML 幫助,以了解關(guān)于必需信息的更多內(nèi)容)。完成后的圖應(yīng)該類似如下: 這個 UML 插件展示了 Eclipse 插件的幾個典型特點。首先,它展示了工具之間的緊密集成。表面上絕對無法看出有多個組件在工作;與 Eclipse 平臺和 JDT 的集成是無縫的。例如,當(dāng) Person 類被創(chuàng)建時,它顯示語法錯誤是因為它的一個屬性 另一個特點是 EclipseUML 利用其他插件提供的功能的能力——在此例中是 GEF 插件,它提供用于開發(fā)可視化編輯器的工具。 還有另一個特點涉及 EclipseUML 插件使用多層次功能來分發(fā)的方式。支持類圖的基本插件是免費的,但是更成熟的版本要付費才能使用。 Eclipse 平臺體系結(jié)構(gòu) 圖 10. Eclipse 平臺體系結(jié)構(gòu) 平臺 工作區(qū) 工作臺 SWT 已被證明是 Eclipse 最具爭議的部分。SWT 比 Swing 或 SWT 更緊密地映射到底層操作系統(tǒng)的本機圖形功能,這不僅使得 SWT 更快速,而且使得 Java 程序具有更像本機應(yīng)用程序的外觀和感覺。使用這個新的 GUI API可能會限制 Eclipse 工作臺的可移植性,不過針對大多數(shù)流行操作系統(tǒng)的 SWT 移植版本已經(jīng)可用。 Eclipse 對 SWT 的使用只會影響 Eclipse 自身的可移植性——使用 Eclipse 構(gòu)建的任何 Java 應(yīng)用程序都不會受到影響,除非它們使用 SWT 而不是使用 Swing/AWT。 團隊支持 幫助 |
|
|