在Eclipse插件開發過程中,為了更好的維護和管理插件項目構建路徑,最好將以前的單純的Jar包轉換成Eclipse的插件包,如果屬于開源的類庫的話,我們可以獲得它的源代碼文件,在Eclipse中可以和容易的查看和跟蹤源文件,但有時我們也會碰到Source not found 的提示,比如這樣:
碰到這樣的情況,如果有源代碼的話,可以新建一個源代碼插件,這樣就可以直接查看源代碼文件,否則的話只能想其他辦法,比如裝一個反編譯的插件,不過有時好像反編譯的不好,處理常量的時候會亂,而且還沒有JavaDoc文件,這里我來說明一下源代碼插件的制作。
如果我們想新建一個Eclipse插件,比如我正在用到的Apache的dbutil工具,為了讓Eclipse能夠根據.class文件自動查找對應的.java文件,我們需要給插件包制作一個源代碼插件,這個過程有點麻煩,現在把打包的過程寫下來,以后可以隨時查詢。
我們先新建一個dbutil的插件包,比如名稱為“com.cnex.org.apache.dbutil”,這個是項目的層次結構:
我們在項目中新建一個lib的文件夾,然后將dbutil.jar及相關的jar包放入到這個文件夾,雙擊打開META-INF文件夾下的MANIFEST.MF文件,切換到“Runtime”選項卡中,在右下角的ClassPath組中點擊“Add”按鈕,將lib目錄下的jar文件添加到插件的構建路徑中,然后在“Exported Packages”組中點擊“Add”按鈕,將jar文件的Java包導出讓其他插件項目可以引用。下面是截圖:
這樣就基本完成了,我們可以修改插件的一般信息,比如插件的版本好,插件的bundle名,稱,添加對應的依賴性,在這里我們使用的dbutil-2.4.4版本,我們在MANIFEST.MF文件的Overview選項卡修改對應的信息:
然后我們導出這個插件包,因為采用鏈接jar包的方式,我們將它導出成文件夾插件的方式,右鍵選擇com.cnex.org.apache.dbutil插件,然后選擇“Export” -> "File System" ,選擇導出的位置,點完成就行了。
插件導出以后,我們只需要lib文件夾、META-INF文件夾和build.properties文件,其他的文件可以刪除。我們將導出的插件文件夾加上版本號:“com.cnex.org.apache.dbutil_2.4.4”,這樣Eclipse的插件就完成了
接下來我們插件的源代碼插件,新建一個名稱為“com.cnex.org.apache.dbutil.source”插件工程,名稱命名規范是剛才的插件名稱后面在加上.source,插件工程的文件層次結構為:
在我們新建完“com.cnex.org.apache.dbutil.source”插件工程后,在src源文件夾下新建一個文件夾,文件夾的命名和我們剛才新建導出后的插件文件夾名稱要是一樣的,這里是com.cnex.org.apache.dbutil_2.4.4,接著再在這個文件夾下新建一個lib的文件夾,下面放我們的源代碼包,這里的壓縮包必須是zip格式的,而且這個壓縮包的文件的第一層一個就開始出現源代碼包的包名了:
也就是說你打開這個zip包應該直接看到上面的文件夾,這個zip文件命名也有講究的,名稱要和你新建的Eclipse插件中引用的jar文件相關,比如你的插件中引用的是“dbunit-2.4.4.jar”,那么這個源代碼壓縮文件名稱應該為“dbunit-2.4.4src.zip”,這樣就基本完成了。
導出方式和剛才導出插件包方式類似。這樣我們的源代碼插件就新建完成了!