2013-12-09 63 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使用的一種方法。 –