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