今天在寫RCP的基礎運作插件的時候,發現一個非常有意思的問題:
我有兩個插件A和B,A是RCP運作主插件,B是普通插件,A依賴于B存在并運作。當我把B打成JAR包,放到A下,做本地依賴的時候,那麼Log4j的配置檔案加載無誤,但是這樣是違反了Eclipse插件開發原則(Eclipse最小運作機關是插件)的;我把A和B通過feature進行關聯,然後在A中依賴B插件,通過product檔案啟動A插件的時候,發現B插件無法加載Log4j的配置檔案... ...
很郁悶的問題哦~為什麼?
因為我一直在使用原來java的類加載機制思考問題,一個類加載機,将加載所有的Class~在Eclipse下則不是這樣的,每一個類加載機隻負責一個插件的内容加載~多個類加載機之間是沒有關系的~
是以,每一個插件在類加載時都是獨立的個體~是以每一個插件下面都需要自行增加一個Log4j配置檔案,大家都獨立維護自己的Log4j配置檔案~唉,有一個配置檔案泛濫的年代啊~
ps: