使用Tycho解决对sun.misc包的依赖性

我尝试将基于Buckminster的构建转换为Tycho(0.19.0)。 在我们的(镜像)目标平台中,我们有来自http://lmax-exchange.github.io/disruptor/的软件包com.lmax.disruptor,它导入了包"sun.misc"

当我尝试构建我们自己的bundle(取决于com.lmax.disruptor)时,我得到:

[错误]缺少要求:com.lmax.disruptor 3.2.0需要’package sun.misc 0.0.0’但找不到它

我检查了许多Tycho教程,但没有一个包含这样的依赖。 有没有办法从执行的JRE导入该包?

解决方法:

当我将disruptor bundle作为库添加到我的bundle时,它可以正常工作。 但这种接缝更像是一种解决方法,因为我也会有其他依赖它的捆绑包。

问题是没有一个标准的OSGi执行环境公开sun.misc包,所以使用这个包的bundle不能在标准的OSGi运行时上运行。 这就是构建失败告诉你的。

因此,如果您有一个标准的OSGi运行时(请注意,Equinox因其osgi.compatibility.bootdelegation选项而在这里很特别),您需要告诉OSGi运行时从引导类路径中公开其他包。 一种方法(使Tycho也理解你的意图)是构建一个系统包片段,它声明了sun.miscExport-Package

据报道这有用,但我自己没试过。