1月14日:
插件的开发需要配置Plugin.xml 和manifest.mf 两个文件,一开时没注意需要改manifest.mf,只修改Plugin.xml时仿佛有问题,上网查了
下,原来是因为:
Eclipse3.0(含以前)版本:
这个版本中没有MANIFEST.MF文件,所以所有东西都要写在plugin.xml中
Eclipse的帮助中有对他的详述,基本形式就是:
<runtime>
<library name=
<export name=
</library>
</runtime>
这里就是将你的源代码打成一个xxx.jar的包并且放入最后导出的插件中,但是要成功导出还需要在build.properties文件中添加如下:
source.xxx.jar=your sorce code path
这里就可以使你的插件找到源代码
如果你的插件包含运行时需要的外部包,那么还要在<runtime>里添加:
<library name=
这样工作就基本完成,当然要在build.properties中填加打包后源文件目录及输入目录之类,可以在PDE中进行可视化设置,不用自己写
不过plugin.xml中貌似存在些问题,可以成功导出,但是运行时还是会出找不到外部引用的CLASS的异常,适合不需要外部JAR的插件使用
3.1.1–3.1.2
Eclipse3.1以后就加入了MANIFEST.MF文件用于导出构建用,并且该文件存在时Eclipse是无视plugin.xml文件中的配置信息的
MANIFEST.MF文件可以在Eclipse PDE中大部分设置生成,需要注意的是如果有外部JAR的话要在构建选项最下方的额外JAR中加入外部包,不然即使你运行时中已经包含还是会导出时出错,并且要在构建页最上方加入一个代码的JAR,将外部包及源代码目录添加进去,一个MANIFEST.MF的例子如下:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: 插件名
Bundle-SymbolicName: 插件标志名称; singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: 全部代码JAR
Bundle-Vendor: UglyTroLL
Bundle-Localization: plugin
Export-Package:代码路径
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Eclipse-AutoStart: true
这个版本中没有MANIFEST.MF文件,所以所有东西都要写在plugin.xml中
Eclipse的帮助中有对他的详述,基本形式就是:
<runtime>
<library name=
your sorce code path
><export name=
xxx.jar
/></library>
</runtime>
这里就是将你的源代码打成一个xxx.jar的包并且放入最后导出的插件中,但是要成功导出还需要在build.properties文件中添加如下:
source.xxx.jar=your sorce code path
这里就可以使你的插件找到源代码
如果你的插件包含运行时需要的外部包,那么还要在<runtime>里添加:
<library name=
your jar path
/>这样工作就基本完成,当然要在build.properties中填加打包后源文件目录及输入目录之类,可以在PDE中进行可视化设置,不用自己写
不过plugin.xml中貌似存在些问题,可以成功导出,但是运行时还是会出找不到外部引用的CLASS的异常,适合不需要外部JAR的插件使用
3.1.1–3.1.2
Eclipse3.1以后就加入了MANIFEST.MF文件用于导出构建用,并且该文件存在时Eclipse是无视plugin.xml文件中的配置信息的
MANIFEST.MF文件可以在Eclipse PDE中大部分设置生成,需要注意的是如果有外部JAR的话要在构建选项最下方的额外JAR中加入外部包,不然即使你运行时中已经包含还是会导出时出错,并且要在构建页最上方加入一个代码的JAR,将外部包及源代码目录添加进去,一个MANIFEST.MF的例子如下:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: 插件名
Bundle-SymbolicName: 插件标志名称; singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: 全部代码JAR
Bundle-Vendor: UglyTroLL
Bundle-Localization: plugin
Export-Package:代码路径
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Eclipse-AutoStart: true
为了更好的实现动态加载/卸载插件,Eclipse从3.0开始实现OSGI规范,原先在plugin.xml文件里定义的很多内容都被推荐放在manifest.mf文件里,只有<extension>和<extension-point>是例外。下面是两种文件格式中各元素的对照表:
plugin.xml tag/attribute manifest.mf header
<plugin id=> Bundle-SymbolicName
<plugin version=> Bundle-Version
<plugin name=> Bundle-Name
<plugin provider=> Bundle-Vendor
<plugin class=> Bundle-Activator
<fragment plugin-id=> Fragment-Host
<fragment plugin-version=> Fragment-Host: <id>; bundle-version=
<requires>, <import> Require-Bundle
<runtime>, <library> Bundle-ClassPath
<plugin id=> Bundle-SymbolicName
<plugin version=> Bundle-Version
<plugin name=> Bundle-Name
<plugin provider=> Bundle-Vendor
<plugin class=> Bundle-Activator
<fragment plugin-id=> Fragment-Host
<fragment plugin-version=> Fragment-Host: <id>; bundle-version=
<requires>, <import> Require-Bundle
<runtime>, <library> Bundle-ClassPath
so,我就在manifest.mf 中加了一句:Bundle-ClassPath: .,lib/mysql-connector-java-5.0.4-bin.jar。添加了运行时用到的JDBC连接包的路径。
en,next~设置好Plugin.xml 中的扩展点,把主视图和登录视图给加上了。当初想是给登录视图直接加个按钮,充满整个视图,点击即登陆,但总是调试不过。。。先不管它,用MySQL tools中的query brower建三张表,谁知道那玩意儿不支持中文,自己先汗了个说,怎么匹配字符集都不行,从gbk到gb2312到UTF-8都没用,真开始对这个官方的编辑器失去信心了~哎,只有暂时用英文调试了。以后在想办法的
说。又回到前面那个问题~~还是调试不通过,用户登陆不上,总是报错,末办法,继续检查代码吧~