在线急求!eclipse插件开发,如何查找SourceBundle

时间:2023-02-07 08:45:09
我的项目一共三个插件工程,其中之一会添加ClasspathContainer到Java工程,这个新的Library中只有两项,就是我的另外两个插件(jar发布的),这部分都已经OK!发布的时候选项里以单独的bundle发布了插件源码,测试时也一并部署了!

现在的问题是:我要怎么样通过代码查找的那两个插件的SourceBundle,以使得我添加的ClasspathContainer中的两项attach source,开发人员可以直接查看插件的源代码!比如:

    Bundle bundle=Platform.getBundle("net.sf.mytool.core");
    File file=FileLocator.getBundleFile(bundle);

这一段能够获得插件包的具体位置,那怎么样获取这个插件包对应的SourceBundle(我只关心它的路径)!
我试过Bundle sourceBundle=Platform.getBundle("net.sf.mytool.core.source");这个获取不到,我查看了自动生成的源代码包,里面的Bundle-SymbolicName是这个!

求各位插件开发的同学帮忙,在线等,问题解决立马结贴!

10 个解决方案

#1


在线等ing!

#2


这段代码在你调试的时候应该就是该返回null的...

#3


哥,又看到你了!
帮我想想办法捏,怎么弄?

#4


调试的时候没有源码bundle返回null我理解,但是我是打包(生成源码bundle)一起部署在plugins下面的,也是返回null,是方向做错了么?

#5


打包以后也是null? 那应该是source bundle没安装成功吧?
打开osgi控制台看看

#6


net.sf.mytool.core.jar发布的时候,配套生成的net.sf.mytool.core.source.jar也属于bundle么?
也放在plugins目录下吗?OSGi控制台上貌似没有找到net.sf.mytool.core.source这个包

#7


是要放的,要不然怎找得到。。

#8


我是把net.sf.mytool.core.source.jar放在plugins目录下了,OSGi控制台根本没这个包!

#9


不好意思,看来我说错了,source bundle确实不在osgi的注册表中,目前还不知道原理...

另外一种思路,可以根据bundle的名字自己计算出对应的sourcebundle的名字,路径也是一样

#10


嗯,我现在是这么做的,直接把bundle名替换为追加.source的新路径名来定位。
虽然可以用,但是总觉得不雅观,项目紧,只好先将就顶着用了!

#1


在线等ing!

#2


这段代码在你调试的时候应该就是该返回null的...

#3


哥,又看到你了!
帮我想想办法捏,怎么弄?

#4


调试的时候没有源码bundle返回null我理解,但是我是打包(生成源码bundle)一起部署在plugins下面的,也是返回null,是方向做错了么?

#5


打包以后也是null? 那应该是source bundle没安装成功吧?
打开osgi控制台看看

#6


net.sf.mytool.core.jar发布的时候,配套生成的net.sf.mytool.core.source.jar也属于bundle么?
也放在plugins目录下吗?OSGi控制台上貌似没有找到net.sf.mytool.core.source这个包

#7


是要放的,要不然怎找得到。。

#8


我是把net.sf.mytool.core.source.jar放在plugins目录下了,OSGi控制台根本没这个包!

#9


不好意思,看来我说错了,source bundle确实不在osgi的注册表中,目前还不知道原理...

另外一种思路,可以根据bundle的名字自己计算出对应的sourcebundle的名字,路径也是一样

#10


嗯,我现在是这么做的,直接把bundle名替换为追加.source的新路径名来定位。
虽然可以用,但是总觉得不雅观,项目紧,只好先将就顶着用了!