2010-02-26 28 views
1

我得到了一些二進制形式的OSGi包,聲明瞭捆綁的依賴關係,比如Java本身提供的「org.ietf.jgss」。 P2檢測到這些依賴關係,並且當我嘗試稍後使用P2導向器應用程序安裝產品時,安裝失敗,因爲沒有捆綁軟件提供這些軟件包。但是如果我使用P2產品版本,我會得到一個可以使用的完整安裝產品。如何使用Eclipse處理Java提供的包P2

我的問題是我不想爲應用程序的每個變體創建產品文件和構建。因此嘗試了使用P2導向器來複制所有P2存儲庫以便將產品安裝到目標系統上的方法。

那麼我該如何處理Java提供的包的依賴關係,以及如何「說服」P2如果它們是由Java本身提供的,就忽略這些包。

感謝您的幫助。

回答

1

由Java提供的軟件包,或者更確切地說OSGi稱之爲「執行環境」的軟件包定義在一個以java。*開頭的軟件包中,並且不需要顯式的import語句。

如果您的虛擬機提供的附加軟件包不是以java開頭*,您可以通過系統軟件包使它們可用(因此框架使它們可用並可以解析這些軟件包的顯式導入),也可以使用boot委派(這意味着即使沒有明確導入,這些包也會奇蹟般地可用)。

雖然你的第一句話我有點困惑。如果一個bundle聲明對另一個bundle的依賴關係,那麼這個bundle如何由Java本身提供,因爲JVM不提供任何bundle?

相關問題