好好生活,努力工作,天天向上!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            46 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks
              最近同事被一個(gè)問題困惱了很久,讓我?guī)兔聪?/span>,問題是這樣的,我們的平臺(tái)是基于Eclipse RCP 3.3.0,將每個(gè)功能模塊作為一個(gè)插件工程,系統(tǒng)提供了基于Http的自動(dòng)更新插件的功能,要求在插件更新完成后將舊版本刪除掉(我們自己寫的版本比較方法),本來一切運(yùn)行正常,但是負(fù)責(zé)部署的同事將插件系統(tǒng)的版本號升級成4段,比如以前的版本組成是“主版本號.次版本號.內(nèi)部版本號現(xiàn)在發(fā)展到主版本號.次版本號.內(nèi)部版本號.構(gòu)建版本號”比如將"3.0.0100"升級到"3.0.0100.1",這時(shí)候自動(dòng)刪除舊插件的功能就運(yùn)行的不正常,比如插件中有個(gè)主插件版本號為3.0.0100.9啟動(dòng)后可以刪除版本號為"3.0.0100.8"的插件,而"3.0.0100.11"的插件卻無法刪除"3.0.0100.9"的插件。

             其實(shí)這和OSGI的版本機(jī)制有關(guān)系,Eclipse內(nèi)部插件版本標(biāo)記和比較是通過"org.eclipse.osgi.*"插件中的Version.java完成的,Version 中的字段major表示主版本號、minor表示次版本號、micro表示微型版本號(內(nèi)部版本號),這三個(gè)字段的類型都是int型的,而Version中的qualifier用來表示構(gòu)建版本號,類型是字符串,當(dāng)時(shí)如果第四位構(gòu)建版本號如果是純數(shù)字的話,Eclipse會(huì)自動(dòng)格式化一下,再進(jìn)行比較,比如比較08和10,格式之后變成8 vs 10,通過字符串的compare方法會(huì)得到8比10大7,當(dāng)然它就會(huì)認(rèn)為"oss.client_1.1.1.08"的版本要比"oss.client_1.1.1.10"高,這可能是Eclipse 3.3.0 版本的一個(gè)Bug,我在Eclipse 3.3.2中沒有發(fā)現(xiàn)這個(gè)問題,在Eclipse 3.4 3.5也已經(jīng)修復(fù)好了,如果你使用的是Eclipse 3.3.0并且也有這樣的需求的話要小心了。
          posted on 2009-09-18 18:14 VWPOLO 閱讀(1776) 評論(2)  編輯  收藏 所屬分類: Eclispe 插件開發(fā)

          Feedback

          # re: Eclipse 3.3.0的插件版本問題 2009-09-18 19:32 nonono
          我也碰到同樣問題哈  回復(fù)  更多評論
            

          # re: Eclipse 3.3.0的插件版本問題[未登錄] 2013-10-09 22:27 lx
          我也遇到了這種問題,哎,糾結(jié)了。。  回復(fù)  更多評論
            

          主站蜘蛛池模板: 辰溪县| 金湖县| 长阳| 绩溪县| 延寿县| 海兴县| 清苑县| 巫溪县| 白玉县| 金堂县| 木兰县| 富川| 屏山县| 柳州市| 都昌县| 长春市| 孟村| 曲阜市| 舒兰市| 什邡市| 吴桥县| 新宁县| 繁昌县| 田林县| 抚顺市| 金阳县| 行唐县| 泸溪县| 景泰县| 洞头县| 三原县| 绍兴县| 桃源县| 和政县| 辽中县| 安图县| 诏安县| 莱州市| 老河口市| 双桥区| 桃江县|