大夢想家

          5年開發(fā)工程師,2年實施經(jīng)理,X年售前顧問,......
          數(shù)據(jù)加載中……
          RCP實踐之第三方JAR包
              感謝大家對上一篇文章的拍磚,引起的反響不小,目的達(dá)到了~,希望可以繼續(xù)板兒磚橫飛!
              今天來說說第三方JAR包的引入。RCP開發(fā)(或者plugin開發(fā))中最讓人頭疼就是第三方JAR包的引入了,很多初學(xué)的朋友常常頭疼,介紹的文章也不少了,如果搞不定,自己google一下就可以了。
              為什么第三方JAR包會引發(fā)如此眾多的問題,其實并不是Eclipse的錯,而是先入為主的錯。如果你一開始就就接觸Eclipse開發(fā),以后再做不同java開發(fā),你就會覺得java的類加載機(jī)制是變態(tài)了~Eclipse的類加載機(jī)制是基于OGSI的實現(xiàn),它完成了插件的獨立加載和獨立維護(hù),正是因為這種變態(tài)的類加載機(jī)制,才有了我們頭大的第三方j(luò)ar包的問題,也正是這種偉大的類加載機(jī)制,才有了即插即用的思路的誕生。
              大多數(shù)簡單的RCP項目都是將所有的JAR包放入本地項目中,然后直接進(jìn)引入項目路徑,就開始整了,對于小的應(yīng)用,或者開發(fā)人員少的情況下,這樣是可行的,也是便捷的~但是RCP的目標(biāo)是大型的企業(yè)級應(yīng)用,一個系統(tǒng)由十幾個,幾十個插件組成,是很正常的。所以就要求我們將RCP中所有用到的第三方JAR包統(tǒng)一管理,統(tǒng)一維護(hù),給開發(fā)人員少一些煩惱。
              思路有兩種:
          1.將JAR文件plugin樣子包裝,及新建Plug-in from existing jar archives 項目,然后選擇JAR文件,再取消Unzip the jar archives into the project 選項,然后其它的插件依賴它就可以了。
          2.新建一個不同插件項目,然后把第三方JAR包放入這個項目,然后引入到此項目中,在plugin.xml的runtime配置頁的Exported Packages 選Add... 再選擇要發(fā)布出去的包路徑,然后其他的插件依賴它就可以了。
              官方推薦的方式是第一種,個人認(rèn)為第一種確實很好,可以非常好而且方便的維護(hù)第三方JAR包。但是我還是選擇了第二種方式,理由是,配置文件讀取的問題。
              每一個插件文件都會維護(hù)一份屬于自己的配置文件,只有這樣才能做到自我獨立。但是這兩種方式都不能使其他插件項目的配置文件獨立維護(hù),原因就是Eclipse那討厭又強(qiáng)大的類加載機(jī)制。
              使用第一種方式,配置文件必須放在你記載的進(jìn)來的JAR包的里面,這樣Eclipse類加載機(jī)才會加載并處理,除非選擇了Unzip the jar archives into the project 選項,并把配置文件和一堆的class文件放在同一目錄下類加載機(jī)才能發(fā)現(xiàn)。我想這種方式誰都不會喜歡,要么就是我們要創(chuàng)造自己的JAR包,要么工作臺遍布了各種各樣來自世界各地的class文件。
              使用第二種方式,是通過運(yùn)行時將需要發(fā)布出來供別人依賴的package發(fā)布出來,而配置文件則需要放在此插件項目中。相對而言,這種比上一種有很大的好處,而且也不是那么難維護(hù)。

              以上只是自己項目中的一些總結(jié),關(guān)于第三方JAR包的問題,我查了很多資料,好像逃不過這三種方式(直接在項目中依賴算一種),不知道各位大俠還有沒有更好的辦法,即能處理好第三方JAR包,又能保持各個插件維護(hù)自己獨立的配置文件?

          客戶虐我千百遍,我待客戶如初戀!

          posted on 2007-06-20 21:43 阿南 閱讀(2941) 評論(2)  編輯  收藏 所屬分類: Eclipse-RCP

          評論

          # re: RCP實踐之第三方JAR包 2007-10-26 09:21 施志

          你好, 看了你寫的文章,感覺受益非淺, 但有些地方還是不明白,
          在我將第三方JAR包做成插件 ,在導(dǎo)入時,總是報錯
          懇求 你發(fā)幾篇講解 關(guān)于 Rcp 第三方JAR 包 做成插件導(dǎo)入項目的文章給我, shzhlo@hotmail.com
          非常感謝!
            回復(fù)  更多評論    

          # re: RCP實踐之第三方JAR包 2008-08-06 09:09 shenze

          一樣的問題,就是用官方方法的都不行。
          shenze406@sina.com謝了!
            回復(fù)  更多評論    
          主站蜘蛛池模板: 通榆县| 白银市| 东至县| 库伦旗| 万安县| 延寿县| 房山区| 长沙市| 肥东县| 蒲城县| 马山县| 天长市| 西畴县| 根河市| 绥芬河市| 呼图壁县| 衡阳县| 望谟县| 鄯善县| 涿鹿县| 化德县| 庆阳市| 安西县| 凤凰县| 邢台市| 吉木萨尔县| 迭部县| 广汉市| 盐津县| 吉水县| 和平区| 丽江市| 如皋市| 祥云县| 景德镇市| 图片| 鹤峰县| 刚察县| 石台县| 宁德市| 贵阳市|