在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”,这样就基本完成了。
导出方式和刚才导出插件包方式类似。这样我们的源代码插件就新建完成了!