Eclipse的外掛程式機制。

來源:互聯網
上載者:User
        Eclipse因為其強大的外掛程式機制而聞名,完全可以說,整個Eclipse就是由外掛程式組成的。到了eclipse 3.0,隨著RCP概念的興起,整個eclipse的外掛程式也形成了明晰的層次關係。底層是RCP的org.eclipse.core.runtime,org.eclipse.ui;中間是構成eclipse本身workbench的大量外掛程式如org.eclipse.swt,org.eclipse.jface,org.eclipse.platform,再到最上層,是一些專用的功能外掛程式,如CDT,JDT,EMF等。本文簡單的針對當前流行的外掛程式,做一個簡單的介紹。
        首先是一個的外掛程式層次圖
         +Eclipse SDK
                        org.eclipse.sdk
                        +Eclipse Platform 
                                        +RCP
                                                    org.eclipse.core.runtime
                                                    org.eclipse.ui                                                    
                                                    org.eclipse.update.configurator
                                        org.eclipse.swt
                                        org.eclipse.jface
                                        org.eclipse.platform
                                        org.eclipse.debug
                                        org.eclipse.ant            
                                        org.eclipse.help
                                        ...
                        +JDT
                                        org.eclipse.jdt.core
                                        org.eclipse.jdt.ui
                                        org.eclipse.jdt.doc
                                        org.eclipse.jdt.debug
                                        org.eclipse.jdt.junit
                                        
                        +PDT
                                        org.eclipse.pde
                                        org.eclipse.pde.build
                                        org.eclipse.pde.core
                                        org.eclipse.pde.runtime
                                        org.eclipse.pde.ui
                                        org.eclipse.pde.doc
                                        org.eclipse.pde.source
                        
        由可以看到,Eclipse SDK是這些外掛程式的總和。在所有這些外掛程式中,最為核心的是RCP所屬的幾個外掛程式,org.eclipse.core.runtime,org.eclipse.ui(理論上RCP應該就包含這兩個組件,但是據本人的瞭解,沒有org.eclipse.update.configuration,org,eclipse.swt,org.eclipse.jface,org.eclipse.workbenchde的支援,
編寫帶有UI的RCP程式是不可能的)。org.eclipse.core.runtime主要提供跨平台的運行時支援,以及對其它外掛程式的管理機制;而org.eclipse.ui則提供跨平台的介面支援,需要注意的是,org.eclipse.ui依賴於5個外掛程式,不妨開啟eclipse/plugins/org.eclipse.ui_3.0.1/plugin.xml檔案,你能發現如下的幾行文字,清楚地說明了這種依賴關係:
        <requires>
              <import plugin="org.eclipse.core.runtime"/>
              <import plugin="org.eclipse.help"/>
              <import plugin="org.eclipse.swt" export="true"/>
              <import plugin="org.eclipse.jface" export="true"/>
              <import plugin="org.eclipse.ui.workbench" export="true"/>
           </requires>。

        RCP之上,是Eclipse的platform層,這一層負責Eclipse本身的介面,操作和功能。比如Eclipse的菜單,各種視圖和編輯器,調試能力,協助支援等。這一層是Eclipse的最龐大,也最複雜的一部分。
        其中,org.eclipse.swt,org.eclipse.jface提供的是跨平台的UI的底層支援,而org.eclipse.ui.workbench實現了一部分的Eclipse的一部分上層UI架構,並最終由org.eclipse.ui.ide實現了大部分的菜單,編輯視窗,工作清單等UI組件和功能。

        Platform之上,就是Eclipse的SDK層了,其實就是platform+JDT+PDT,在platform之上,使得Eclipse真正成為一個完整的開發工具。同時,正是由於Eclipse的這種設計方式,使得Eclipse作為一個開發環境,幾乎可以無限擴充,不僅支援java開發,外掛程式開發,C++開發,還可以是Python,XML,Perl,UML等等等等。去http://www.eclipse-plugins.info上去看看,你就會理解我為什麼這麼說了。遺憾的是,我沒能找到.Net開發相關的外掛程式。

        可見,正式由於Eclipse基於外掛程式的設計方式,使得Eclipse本身擁有了無限的發展空間,在眾多開發環境中獨具一格。而且從3.0版本以來,Eclipse的開發組正在調整Eclipse的外掛程式組織圖,使得這些外掛程式的階層更加清晰,在此基礎上出現的RCP概念更是為很多外掛程式離開Eclipse單獨運行提供了可能。
        

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.