一直以來(lái),eclipse 對(duì)于 fragment 的概念都是一種補(bǔ)充,而不是覆蓋的機(jī)制。
也就是說(shuō),fragment 里的 class 會(huì)在 host plugin 的 class 裝載之后而裝載。
只有 host plugin 里面沒(méi)有找到,才會(huì)去找 fragment 里面的類。我們的framework,目前是由一個(gè)專門(mén)的小組在維護(hù)。其他小組是不能隨意改它的代碼的。
但是,當(dāng)有些情況下,使用這個(gè)framework的開(kāi)發(fā)小組需要修改這部分代碼,而這個(gè)修改
又只是局部的,只有這個(gè)小組需要用的,那么現(xiàn)在就很頭痛。后來(lái)用一種jar替換的方式
來(lái)滿足這個(gè)需要,但是搞得開(kāi)發(fā)起來(lái)很繁瑣,需要經(jīng)常的export。
一直以來(lái)也沒(méi)有去動(dòng) eclipse 的代碼,這次把應(yīng)用啟動(dòng)的模式從deploy改成launch 之后,
別的地方都好說(shuō),唯有需要處理 fragment 的這個(gè)地方很頭痛。
如果把eclipse fragment的裝載順序調(diào)整一下,先裝載 fragment 里的class,再裝載
host plugin 里面的 class,這個(gè)問(wèn)題就迎刃而解了。framework開(kāi)發(fā)小組只需要處理
公用的代碼,使用 framework 的小組就可以用自己的 fragment 去處理特殊的代碼,
這個(gè)世界就清凈了。大家都可以用 launch 這種模式來(lái)啟動(dòng)應(yīng)用,加快應(yīng)用開(kāi)發(fā)的效率。
剛才改了一下,其實(shí)很簡(jiǎn)單,只是改 DefaultClassLoader 就行了,看一下代碼就知道該
怎么改。后悔怎么沒(méi)有早點(diǎn)改,呵呵。
主站: http://blogsite.3322.org/jspwiki/