`
vwpolo
  • 浏览: 191480 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

创建和打包Eclipse源代码插件

阅读更多

    在Eclipse插件开发过程中,为了更好的维护和管理插件项目构建路径,最好将以前的单纯的Jar包转换成Eclipse的插件包,如果属于开源的类库的话,我们可以获得它的源代码文件,在Eclipse中可以和容易的查看和跟踪源文件,但有时我们也会碰到Source not found 的提示,看到这样的提示会让人很不爽,比如这样:


 
  碰到这样的情况,如果有源代码的话,可以新建一个源代码插件,这样就可以直接查看源代码文件,否则的话只能想其他办法,比如装一个反编译的插件,不过有时好像反编译的不好,处理常量的时候会乱,而且还没有JavaDoc文件,这里我来说明一下源代码插件的制作。
 

  如果我们想新建一个Eclipse插件,比如我正在用到的Apachedbutil工具,为了让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的文件夹(如果你在插件工程中的jar包没有放到lib目录下面,那么这个lib文件夹就不需要了,基本上和插件的文件夹层次类似),下面放我们的源代码包,这里的压缩包必须是zip格式的,而且这个压缩包的文件的第一层一个就开始出现源代码包的包名了:



 

   也就是说你打开这个zip包应该直接看到上面的文件夹,这个zip文件命名也有讲究的,名称要和你新建的Eclipse插件中引用的jar文件相关,比如你的插件中引用的是“dbunit-2.4.4.jar”,那么这个源代码压缩文件名称应该为“dbunit-2.4.4src.zip”,这样就基本完成了。

   导出方式和刚才导出插件包方式类似。这样我们的源代码插件就新建完成了!

<!--EndFragment-->

  • 大小: 156.2 KB
  • 大小: 27 KB
  • 大小: 32.3 KB
  • 大小: 32.3 KB
  • 大小: 74.9 KB
  • 大小: 27.1 KB
  • 大小: 27.1 KB
  • 大小: 20.6 KB
  • 大小: 34.2 KB
  • 大小: 34.2 KB
0
1
分享到:
评论
1 楼 zzx0421 2011-03-30  
Eclipse提供了自带jar包的源代码链接功能

相关推荐

Global site tag (gtag.js) - Google Analytics