现在的问题是:我要怎么样通过代码查找的那两个插件的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控制台看看
打开osgi控制台看看
#6
net.sf.mytool.core.jar发布的时候,配套生成的net.sf.mytool.core.source.jar也属于bundle么?
也放在plugins目录下吗?OSGi控制台上貌似没有找到net.sf.mytool.core.source这个包
也放在plugins目录下吗?OSGi控制台上貌似没有找到net.sf.mytool.core.source这个包
#7
是要放的,要不然怎找得到。。
#8
我是把net.sf.mytool.core.source.jar放在plugins目录下了,OSGi控制台根本没这个包!
#9
不好意思,看来我说错了,source bundle确实不在osgi的注册表中,目前还不知道原理...
另外一种思路,可以根据bundle的名字自己计算出对应的sourcebundle的名字,路径也是一样
另外一种思路,可以根据bundle的名字自己计算出对应的sourcebundle的名字,路径也是一样
#10
嗯,我现在是这么做的,直接把bundle名替换为追加.source的新路径名来定位。
虽然可以用,但是总觉得不雅观,项目紧,只好先将就顶着用了!
虽然可以用,但是总觉得不雅观,项目紧,只好先将就顶着用了!
#1
在线等ing!
#2
这段代码在你调试的时候应该就是该返回null的...
#3
哥,又看到你了!
帮我想想办法捏,怎么弄?
帮我想想办法捏,怎么弄?
#4
调试的时候没有源码bundle返回null我理解,但是我是打包(生成源码bundle)一起部署在plugins下面的,也是返回null,是方向做错了么?
#5
打包以后也是null? 那应该是source bundle没安装成功吧?
打开osgi控制台看看
打开osgi控制台看看
#6
net.sf.mytool.core.jar发布的时候,配套生成的net.sf.mytool.core.source.jar也属于bundle么?
也放在plugins目录下吗?OSGi控制台上貌似没有找到net.sf.mytool.core.source这个包
也放在plugins目录下吗?OSGi控制台上貌似没有找到net.sf.mytool.core.source这个包
#7
是要放的,要不然怎找得到。。
#8
我是把net.sf.mytool.core.source.jar放在plugins目录下了,OSGi控制台根本没这个包!
#9
不好意思,看来我说错了,source bundle确实不在osgi的注册表中,目前还不知道原理...
另外一种思路,可以根据bundle的名字自己计算出对应的sourcebundle的名字,路径也是一样
另外一种思路,可以根据bundle的名字自己计算出对应的sourcebundle的名字,路径也是一样
#10
嗯,我现在是这么做的,直接把bundle名替换为追加.source的新路径名来定位。
虽然可以用,但是总觉得不雅观,项目紧,只好先将就顶着用了!
虽然可以用,但是总觉得不雅观,项目紧,只好先将就顶着用了!