2013-12-09 22 views
3

我尝试将基于Buckminster的构建转换为Tycho(0.19.0)。在我们的(镜像)目标平台,我们有包com.lmax.disruptor从http://lmax-exchange.github.io/disruptor/其中进口包装"sun.misc"用Tycho解决sun.misc包的依赖关系

当我尝试建立我们自己的包(取决于com.lmax.disruptor)我得到:

[错误]失踪的要求:com.lmax.disruptor 3.2.0要求 “包sun.misc 0.0.0”,但未能找到

我查了很多第谷教程,但他们都不包含这种依赖性。有没有办法从执行的JRE中导入该软件包?

解决方法:

当我的破坏者束作为库添加到我的包,然后它工作没有问题。但是这更像是一种解决方法,因为我也会有其他的捆绑软件。

回答

1

问题是没有标准的OSGi执行环境公开包sun.misc,所以使用这个包的包不能在标准的OSGi运行时上运行。这是构建失败告诉你的。因此,如果你有一个标准的OSGi运行时(注意Equinox因其osgi.compatibility.bootdelegation选项而特殊),你需要告诉OSGi运行时从boot类路径公开更多的包。做一个这样的方法(让Tycho也理解你的意图)是建立一个系统包碎片,声明Export-Packagesun.misc

这已被报道工作,但我没有尝试过这个我自己。

+0

我创建了一个新的片段,并将其添加到目标平台。之后,包sun.misc可以解决。非常感谢。 – StSigrist

+0

在[本答案](http://stackoverflow.com/a/33379935/731040)中解释了创建该片段供Tycho使用的一种方法。 –