怎样才能在Eclipse调试OSGi的插件的时候自己设置Bundle-Classpath中相对路径的根目录

石榴刺猬 2007-01-11 05:26:14
基于OSGi的一个项目,目录结构如下:

project
--release
----bundles (OSGi的实现以及其它插件)
----configuration (OSGi的配置目录)
----etc (项目的系统配置目录)
----lib (外部库)
----... (其它相关资源目录)
--src
----pluginA
------bin
------src
----pluginB
------bin
------src

编译后的插件放在bundles下,所有外部库放在lib下。

插件pluginA引用了一个外部的库,例如log4j.jar。那么按照OSGi的要求,插件pluginA的MANIFEST.MF中的Bundle-Classpath需要加入该库的位置。

这里就存在一个问题:库的路径如果用相对路径的话,那么在调试期间的根目录是project/src/pluginA/src,但是发布后运行时的根目录其实是project/release/bundles。我不想在调试和发布的时候手工修改MANIFEST.MF中的内容, 那么解决办法有这么几种:
在Bundle-Classpath中用绝对路径;
把lib目录复制到project/src/pluginA/src下面;

但是这两个办法都不好。如果能在调试期间把Bundle-Classpath相对路径的根目录改成project\release\lib,那就很方便调试和发布了。 我看了一下Equinox的代码,貌似是把Bundle的位置作为根了,可以改的吗?
...全文
1243 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
石榴刺猬 2008-01-06
  • 打赏
  • 举报
回复
Opps 这个问题居然提了一年了
healer_kx 2008-01-02
  • 打赏
  • 举报
回复
我和你遇到了同样的问题, 虽然现在解决了, 我是加载JAF. 但是不知道怎么跟你解释.

石榴刺猬 2007-01-11
  • 打赏
  • 举报
回复
调试环境 Eclipse 3.2.1,在project\src\pluginA\src下建立了一个项目,使用Eclipse的OSGi运行环境调试,我把eclipse的OSGi的lib设置到project\release\bundles下面了。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧