RCP實踐之第三方JAR包
感謝大家對上一篇文章的拍磚,引起的反響不小,目的達到了~
,希望可以繼續板兒磚橫飛!
今天來說說第三方JAR包的引入。RCP開發(或者plugin開發)中最讓人頭疼就是第三方JAR包的引入了,很多初學的朋友常常頭疼,介紹的文章也不少了,如果搞不定,自己google一下就可以了。
為什么第三方JAR包會引發如此眾多的問題,其實并不是Eclipse的錯,而是先入為主的錯。如果你一開始就就接觸Eclipse開發,以后再做不同java開發,你就會覺得java的類加載機制是變態了~Eclipse的類加載機制是基于OGSI的實現,它完成了插件的獨立加載和獨立維護,正是因為這種變態的類加載機制,才有了我們頭大的第三方jar包的問題,也正是這種偉大的類加載機制,才有了即插即用的思路的誕生。
大多數簡單的RCP項目都是將所有的JAR包放入本地項目中,然后直接進引入項目路徑,就開始整了,對于小的應用,或者開發人員少的情況下,這樣是可行的,也是便捷的~但是RCP的目標是大型的企業級應用,一個系統由十幾個,幾十個插件組成,是很正常的。所以就要求我們將RCP中所有用到的第三方JAR包統一管理,統一維護,給開發人員少一些煩惱。
思路有兩種:
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... 再選擇要發布出去的包路徑,然后其他的插件依賴它就可以了。
官方推薦的方式是第一種,個人認為第一種確實很好,可以非常好而且方便的維護第三方JAR包。但是我還是選擇了第二種方式,理由是,配置文件讀取的問題。
每一個插件文件都會維護一份屬于自己的配置文件,只有這樣才能做到自我獨立。但是這兩種方式都不能使其他插件項目的配置文件獨立維護,原因就是Eclipse那討厭又強大的類加載機制。
使用第一種方式,配置文件必須放在你記載的進來的JAR包的里面,這樣Eclipse類加載機才會加載并處理,除非選擇了Unzip the jar archives into the project 選項,并把配置文件和一堆的class文件放在同一目錄下類加載機才能發現。我想這種方式誰都不會喜歡,要么就是我們要創造自己的JAR包,要么工作臺遍布了各種各樣來自世界各地的class文件。
使用第二種方式,是通過運行時將需要發布出來供別人依賴的package發布出來,而配置文件則需要放在此插件項目中。相對而言,這種比上一種有很大的好處,而且也不是那么難維護。
以上只是自己項目中的一些總結,關于第三方JAR包的問題,我查了很多資料,好像逃不過這三種方式(直接在項目中依賴算一種),不知道各位大俠還有沒有更好的辦法,即能處理好第三方JAR包,又能保持各個插件維護自己獨立的配置文件?
客戶虐我千百遍,我待客戶如初戀!

今天來說說第三方JAR包的引入。RCP開發(或者plugin開發)中最讓人頭疼就是第三方JAR包的引入了,很多初學的朋友常常頭疼,介紹的文章也不少了,如果搞不定,自己google一下就可以了。
為什么第三方JAR包會引發如此眾多的問題,其實并不是Eclipse的錯,而是先入為主的錯。如果你一開始就就接觸Eclipse開發,以后再做不同java開發,你就會覺得java的類加載機制是變態了~Eclipse的類加載機制是基于OGSI的實現,它完成了插件的獨立加載和獨立維護,正是因為這種變態的類加載機制,才有了我們頭大的第三方jar包的問題,也正是這種偉大的類加載機制,才有了即插即用的思路的誕生。
大多數簡單的RCP項目都是將所有的JAR包放入本地項目中,然后直接進引入項目路徑,就開始整了,對于小的應用,或者開發人員少的情況下,這樣是可行的,也是便捷的~但是RCP的目標是大型的企業級應用,一個系統由十幾個,幾十個插件組成,是很正常的。所以就要求我們將RCP中所有用到的第三方JAR包統一管理,統一維護,給開發人員少一些煩惱。
思路有兩種:
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... 再選擇要發布出去的包路徑,然后其他的插件依賴它就可以了。
官方推薦的方式是第一種,個人認為第一種確實很好,可以非常好而且方便的維護第三方JAR包。但是我還是選擇了第二種方式,理由是,配置文件讀取的問題。
每一個插件文件都會維護一份屬于自己的配置文件,只有這樣才能做到自我獨立。但是這兩種方式都不能使其他插件項目的配置文件獨立維護,原因就是Eclipse那討厭又強大的類加載機制。
使用第一種方式,配置文件必須放在你記載的進來的JAR包的里面,這樣Eclipse類加載機才會加載并處理,除非選擇了Unzip the jar archives into the project 選項,并把配置文件和一堆的class文件放在同一目錄下類加載機才能發現。我想這種方式誰都不會喜歡,要么就是我們要創造自己的JAR包,要么工作臺遍布了各種各樣來自世界各地的class文件。
使用第二種方式,是通過運行時將需要發布出來供別人依賴的package發布出來,而配置文件則需要放在此插件項目中。相對而言,這種比上一種有很大的好處,而且也不是那么難維護。
以上只是自己項目中的一些總結,關于第三方JAR包的問題,我查了很多資料,好像逃不過這三種方式(直接在項目中依賴算一種),不知道各位大俠還有沒有更好的辦法,即能處理好第三方JAR包,又能保持各個插件維護自己獨立的配置文件?
客戶虐我千百遍,我待客戶如初戀!
posted on 2007-06-20 21:43 阿南 閱讀(2928) 評論(2) 編輯 收藏 所屬分類: Eclipse-RCP